在 PyCharm 中编写脚本 运行 但不是从命令行

Script running in PyCharm but not from the command line

当我尝试从 PyCharm IDE 运行 我的程序时,一切正常,但如果我在 Fedora 中输入:

python myScript.py

在 shell 提示中,我从模块 1 中收到导入错误。

ImportError : No modue named myDependency

PyCharm 做什么允许解释器在从 IDE 启动时找到我的依赖项?我怎样才能让我的脚本找到它的依赖项,以便它可以用一个命令启动?

第一步,在 PyCharm 中转到项目设置/python 解释器,并记下路径。然后将其与 which python 的结果进行比较——它们排成一行吗?如果没有,您需要让他们这样做。

如果没问题,请检查 PyCharm 在项目设置/项目结构中定义的项目根目录。那是你的脚本所在的目录吗?如果没有,您应该 运行 该目录中的脚本或将该目录附加到 $PYTHONPATH 变量。

几乎肯定是这两件事之一。

有一些可能的原因可能导致此问题:

  1. 同一个python解释器?检查 import sys; print(sys.executable)
  2. 是同一个工作目录吗?检查 import os; print(os.getcwd())
  3. sys.path 中的差异,即 python 按顺序搜索导入位置的列表,可能是由环境变量引起的。检查 import sys; print(sys.path)

您可能在 Pycharm 中为模块 myDependency 设置了一些项目依赖项。 您可以通过显式导入模块或创建该模块的 egg 并安装它来在 Fedora 中访问它。 然后这将转到 python 站点包,您可以从中引用此依赖项。

添加这个对我有用:

from os import sys, path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))