我使用pydev插件在eclipse中开发。当我在eclipse中运行项目时,一切正常。但是当我尝试从命令行运行它时,我得到一个导入错误。我有这样的目录结构:
TGRParser
|----tgr
|--graph
|--main
| |-- main.py
| |-- __init__.py
|--parser
|--__init__py
|--parserClass.py
现在我在包main(TGRParser / tgr / main)中的模块main(main.py)中有一个Main类。现在在Main类我尝试调用
from tgr.parser.parserClass import Parser
它在eclipse中运行良好,但在命令行中根本不起作用。我检查了sys.path。它们在cmd行和eclipse中都是相同的。
它说:
File "main.py", line 6, in <module>
from tgr.parser.parserClass import Parser
ImportError: No module named tgr.parser.parserClass
答案 0 :(得分:2)
将TGRParser
目录添加到PYTHONPATH
环境变量中。
答案 1 :(得分:1)
如果您在命令行上以
运行它 python main.py
在主文件夹中,然后你不能使用import tgr...
,因为tgr是几个目录。在程序包中运行程序时也不可能进行相对导入,因此执行from .. import parser
将无效。
您最好的选择是将main.py
移到TGRParser
文件夹中,与tgr文件夹一起移动。此时,运行python main.py
应该可以正常工作。