我需要从命令行运行一个python脚本(OS = Debian wheezy,python -version 3.5)。
我使用PyCharm(社区版)编写脚本,它在IDE内部工作。
我使用sys.path.append
命令添加包含我想要的包的目录,然后使用此导入行跟随它:
from package_name,file_name import ClassName
命令行中的错误消息:
ImportError: No module named 'package_name'
答案 0 :(得分:2)
如果您正在运行任何xxx.py文件,并且在由任何IDE运行的相同脚本下都能正常运行,则遇到导入错误,则可能是路径问题。
对我有用的是: 转到显示导入模块问题的文件,然后在导入模块(已看到该问题)之前,使用append将模块路径添加到sys。
例如,我正在从conf路径运行脚本文件,并且我的脚本正在导入位于\ scripts \ Setup \中的模块,因此将模块的路径附加如下。
import sys
import os
conf_path = os.getcwd()
sys.path.append(conf_path)
sys.path.append(conf_path + '\scripts\Setup')
然后使用引发问题的模块的导入语句。
答案 1 :(得分:0)
我找到了上面问题的答案,问题比我想象的容易得多。
解决问题
prefix/lib/pythonVersion
)。<强>解决方案强>
短期解决方案
只要您使用IDE(例如PyCharm),在代码中添加就足够了:
import sys
sys.path.append("path/to/package")
只要您必须从命令行运行脚本,您将获得上述问题中提到的ImportError
。
更好的解决方案
使用以下命令将软件包和python安装的目录添加到shell-profile(例如:.bashrc
):
export PYTHONPATH=prefix/lib/pythonVersion:/path/to/packages
要获取有关PYTHONPATH
的更多信息,请查看此link
在这种情况下,您不需要在代码中附加包的路径:)