1
相对进口
我使用python 2:子包,并在PyCharm
python --version
Python 2.7.13 :: Continuum Analytics, Inc.
我有以下项目结构:
.
└── foo
├── bar1
│ ├── __init__.py
│ └── mod1.py
├── bar2
│ ├── __init__.py
│ └── mod2.py
├── __init__.py
└── start.py
start.py
from foo.bar2.mod2 import mod2_f
mod2_f()
mod1.py
def mod1_f():
print "mod1_f"
mod2.py
from foo.bar1.mod1 import mod1_f
def mod2_f():
mod1_f()
print "mod2_f"
如果我从IDE运行start.py事情工作正常。
但是使用这样的事情:
python ./foo/start.py
结果
Traceback (most recent call last):
File "./foo/start.py", line 1, in <module>
from foo.bar2.mod2 import mod2_f
ImportError: No module named foo.bar2.mod2
现在,让我们说我改变进口
start.py
from bar2.mod2 import mod2_f
mod2_f()
MOD2 .py
from bar1.mod1 import mod1_f
def mod2_f():
mod1_f()
print "mod2_f"
现在事情在命令行python ./foo/start
然而,PyCharm抱怨工作。为什么这些差异?
好,我不使用Python 3,我使用python 2在时刻 – purpletentacle
我会说这是预期的:它应该是'从bar2.mod2进口mod2_f' –
我已经尝试过,并没有解决它.. – purpletentacle