从控制台运行子包中的python文件

时间:2014-09-17 10:43:58

标签: python module console

这是我的项目结构:

/project
|    /package
|    |    __init__.py
|    |    module1.py
|    |    module2.py
|    main.py

main.py中,我导入module1.py。在module1.py中,我导入module2.py

module1.py

from package import module2
#do something

我运行python main.py好的。但是,当我运行python module1.pypackage}内部或python /package/module1.pyproject内部)时,我得到了ImportError

Traceback (most recent call last):
  File "package/module1.py", line 5, in <module>
    from package import engine
ImportError: No module named 'package'

当我在PyCharm中运行module1.py时,没关系。

所以,我的问题是:如何在没有module1.py 的情况下运行文件main.py

谢谢。

1 个答案:

答案 0 :(得分:2)

Sol 1:当您使用from package import module2时,python不知道在哪里查找,除非将其添加到路径中。您可以将其作为

运行
PYTHONPATH=/path/to/project python module1.py

Sol 2:如果 module1.py module2.py 位于同一文件夹中,则无需使用{{ 1}}。
只需使用from package import module2即可。现在运行module1.py会有效。

Sol 3:如果您坚持使用import module2。你不能在你的脚本中附加路径包

from package import module2