【发布时间】:2018-02-07 20:20:11
【问题描述】:
我正在使用 python 2:
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
-
我会说这是意料之中的:应该是
from bar2.mod2 import mod2_f -
我已经尝试过了,但没有修复它..
-
请edit 你的问题说明为什么这个解决方案不起作用,那么。鉴于您提供的清晰的项目结构,它应该工作。当然,由于您更改了名称,因此总是有可能出现拼写错误。但既然你知道它应该工作,我相信你会成功的。
-
如果它不起作用,可能是因为您使用的是 python 3,而您认为您使用的是 python 2 :)
标签: python pycharm python-import python-2.x