在 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
变量。
几乎肯定是这两件事之一。
有一些可能的原因可能导致此问题:
- 同一个python解释器?检查
import sys; print(sys.executable)
- 是同一个工作目录吗?检查
import os; print(os.getcwd())
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__))))
当我尝试从 PyCharm IDE 运行 我的程序时,一切正常,但如果我在 Fedora 中输入:
python myScript.py
在 shell 提示中,我从模块 1 中收到导入错误。
ImportError : No modue named myDependency
PyCharm 做什么允许解释器在从 IDE 启动时找到我的依赖项?我怎样才能让我的脚本找到它的依赖项,以便它可以用一个命令启动?
第一步,在 PyCharm 中转到项目设置/python 解释器,并记下路径。然后将其与 which python
的结果进行比较——它们排成一行吗?如果没有,您需要让他们这样做。
如果没问题,请检查 PyCharm 在项目设置/项目结构中定义的项目根目录。那是你的脚本所在的目录吗?如果没有,您应该 运行 该目录中的脚本或将该目录附加到 $PYTHONPATH
变量。
几乎肯定是这两件事之一。
有一些可能的原因可能导致此问题:
- 同一个python解释器?检查
import sys; print(sys.executable)
- 是同一个工作目录吗?检查
import os; print(os.getcwd())
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__))))