命令行模式下Python导入问题
我有以下代码结构,在我的IDE(Aptana Studio)中运行得很好:
/ProjectName/
/lib
/src
/Module1
/Module2
/Module3
__init__.py
pyClass.py ##Python Class
/main
main.py
main.py :
import Module3.pyClass as pc
myClass=pc.pyClass()
但是当我尝试从命令行运行时,却出现了导入错误!
importError: No module named Module3.pyClass
我是在/main目录下运行的。是不是因为它不知道在哪里找到Module3来导入?我应该怎么告诉它去哪里找Module3呢?
谢谢。
1 个回答
12
如果你从 main
目录运行程序,src
目录就不会被 Python 找到。这意味着你需要做两件事之一:要么从 src
目录运行脚本(可以用一个包装脚本,或者直接移动脚本),要么把 src
目录添加到 sys.path
中。这样做可能是你想要的。下面是具体的做法:
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(如果你是用 py2exe/py2app/cxfreeze 等工具来打包程序,那么你需要用稍微不同的方法,因为它们的工作方式不同。)