Python:包含的ImportError

时间:2012-02-16 19:37:36

标签: python python-import

我使用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

2 个答案:

答案 0 :(得分:2)

TGRParser目录添加到PYTHONPATH环境变量中。

答案 1 :(得分:1)

如果您在命令行上以

运行它

python main.py

在主文件夹中,然后你不能使用import tgr...,因为tgr是几个目录。在程序包中运行程序时也不可能进行相对导入,因此执行from .. import parser将无效。

您最好的选择是将main.py移到TGRParser文件夹中,与tgr文件夹一起移动。此时,运行python main.py应该可以正常工作。