[通过终端通过ImportError调用python脚本时

问题描述 投票:-1回答:1

[从Pycharm调用python脚本时,我的脚本成功运行。但是,当我通过终端调用相同的脚本时,出现导入错误:

Macs-MacBook:src macuser$ python ./run_events.py 
Traceback (most recent call last):
  File "./run_events.py", line 3, in <module>
    from functions import return_ga_data
  File "/Users/macuser/PycharmProjects/ops-google-extract/src/functions.py", line 2, in <module>
    import connect
  File "/Users/macuser/PycharmProjects/ops-google-extract/src/connect.py", line 4, in <module>
    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内部运行文件而不会通过终端运行,而不会通过终端运行?]

[从Pycharm调用python脚本时,我的脚本成功运行。但是,当我通过终端调用相同的脚本时,出现导入错误:Macs-MacBook:src macuser $ python ./run_events ....

python
1个回答
0
投票

您还安装了python 2吗?在终端中输入python --version,看看会得到什么?我的猜测是,Pycharm可能配置为使用python 3,而终端中的默认python是python 2,因此您的python 2缺少为python 3安装的模块。因此,当您在终端中执行脚本时,它将使用python 2。如果是这种情况,您可以尝试,

© www.soinside.com 2019 - 2024. All rights reserved.