作者:MC红石粉 | 来源:互联网 | 2023-09-25 19:49
从Pycharm调用python脚本时,我的脚本成功运行。但是,当我通过终端调用相同的脚本时,会出现导入错误:
Macs-MacBook:src macuser$ python ./run_events.py
Traceback (most recent call last):
File "./run_events.py",line 3,in
from functions import return_ga_data
File "/Users/macuser/PycharmProjects/ops-google-extract/src/functions.py",line 2,in
import connect
File "/Users/macuser/PycharmProjects/ops-google-extract/src/connect.py",line 4,in
from oauth2client.service_account import ServiceaccountCredentials
ImportError: cannot import name 'ServiceaccountCredentials'
我没有使用环境。我也在使用python 3.7。
我所有的python脚本都在同一目录中。我的终端的密码是同一目录。
已尝试:
尝试使用python3 ./run_events.py
调用脚本,但得到的结果相同。
关于路径的SO帖子我将其添加到connect.py的顶部:
import sys
sys.path.append('/Users/macuser/PycharmProjects/ops-google-extract/src/functions.py')
我仍然得到相同的结果。
为什么在使用./run_events.py
时,我可以从IDE内部运行文件而不会从终端运行文件而没有导入错误?
您还安装了python 2吗?在终端中输入python --version,看看会得到什么?我的猜测是,Pycharm可能配置为使用python 3,而终端中的默认python是python 2,因此您的python 2缺少为python 3安装的模块。因此,当您在终端中执行脚本时,它将使用python 2。如果是这种情况,您可以尝试
py -3 ./myscript.py