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