文件“ C:\ Python38-32 \ lib \ os.py”,第411行语法错误

时间:2019-10-23 16:33:10

标签: python

我正在构建python 3.8脚本,以将Google Cloud Storage存储桶中的csv文件加载到Google Cloud项目的数据集中之一的给定表中。命令块是:

commandtobq = "bq load --source_format=CSV --skip_leading_rows=1 --field_delimiter=\"^|\" "
commandtobq += " " + gcptrendtable
commandtobq += " " + gsincomingfolder + filetrendoutputname
commandtobq += " \"" + filetrendschema + "\""
print(commandtobq)
os.system(commandtobq)  

这将产生命令:

bq load --source_format=CSV --skip_leading_rows=1 --field_delimiter="^|"  AvgPDHrsAssoc.avgpdhrsassoc_trend_x 
gs://thd_tr_incoming/AvgPDHrsAssoc-Retail-Trend-GCP-Output-2019-10-23.csv 
"P:\Delivery Team\Execution Reports\Reports-Python\THD-TR-AvgPDHrsAssoc-Retail\SQLs\AvgPDHrsAssoc-Retail-LSR-Extract-v01-Trend-Schema.json"

将此命令复制/粘贴到命令提示符窗口后,它会完美执行。当我使用os.system(commandtobq)通过python执行它时,它失败并显示以下错误:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\..\bin\bootstrapping\bq.py", line 10, in <module>
    import os
  File "C:\Python38-32\lib\os.py", line 411
    yield from walk(new_path, topdown, onerror, followlinks)
             ^
SyntaxError: invalid syntax

如何解决此错误?请注意,我以前在计算机上安装了python 2.7和3.6,但是为了进行全新的3.8安装而将这两个工具都删除了。

任何想法都会有所帮助!谢谢!

添加了以下内容: 我将Eclipse Oxygen.3a版本(4.7.3a)用作IDE,以防影响问题或解决方案

1 个答案:

答案 0 :(得分:1)

有程序做

import sys
print(sys.executable)
print(sys.version)

对于使用yield from的较新版本的库,您似乎是在添加yield from之前的Python版本。

计算您拥有的Python*.exe个文件的数量。您没有使用C:\Python38-32中的那个。

用于Windows的google-cloud-sdk可以选择拥有自己的捆绑Python 2.7。安装3.8可能导致此Python尝试使用3.8随附的库。