我正在构建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,以防影响问题或解决方案
答案 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随附的库。