我有三个文件夹:
/main
__init__.py
main.py
/p1
__init__.py
p1.py
/p2
__init__.py
p2.py
然而p1
的某些部分依赖于p2
,我从p2
导入p1
的方式是使用绝对包而不是相对包:< / p>
from main.p2.p2 import p2class
当我想通过输入以下内容单独运行p1
时会出现问题:
cd main\p1
python p1.py
然而,它说:
ImportError: No module named main.p2.p2
如何单独运行?
文件来源如下:
main\p1\p1.py
:
from main.p2.p2 import p2print
def p1print():
print "p1 printing"
if __name__ == "__main__":
p2print()
p1print()
main\p2\p2.py
:
def p2print():
print "p2 printing"
if __name__ == "__main__":
p2print()
答案 0 :(得分:1)
从/ main目录的外部,使用python -m
运行它。
➜ python -m main.p1.p1
p2 printing
p1 printing
答案 1 :(得分:0)
您必须从p2.p2
而不是main.p2.p2
导入,因为基本包位于main中。如果您希望main.p2.p2
,则必须将main
文件夹的路径插入sys.path