PyCharm 2016.2.3,Mac OS X 10.11.1,Python 3.5(Homebrew);
我有这个文件夹结构
project
/somepackage
/subpackage
__init__.py
bar.py
__init__.py
foo.py
foo.py
:
import somepackage.subpackage.bar
print("foo")
bar.py
:
print("bar")
所以我期望的输出是
bar
foo
在PyCharm中运行正常,但是从终端运行时出现了ImportError错误:
$ pwd
$ /home/project (not the actual path; just omitting some personal stuff)
$ python3.5 somepackage/foo.py
File "foo.py", line 1, in <module>
import somepackage.subpackage.bar
ImportError: No module named 'somepackage'
我找到了这个问题,它与我的问题相同。然而,建议的解决方案并没有对我起作用,因为我确实使用的是与PyCharm相同的Python解释器,并且我当前位于包含/somepackage
文件夹的目录中。
有人有其他关于如何解决这个问题的建议吗?
当使用 -m 模块名 调用时,给定的模块在 Python 模块路径上被找到并作为脚本执行。
希望我能给这个点赞两次 ;) - alexPYTHONPATH
。 - Arthur Taccaexport PYTHONPATH=.
是什么意思? - Rylan Schaeffercd mydir
然后运行python foo/bar.py
(所以mydir
包含一个子目录foo
,其中包含一个文件bar.py
),那么默认情况下import mymodule
将在foo
子目录中查找mymodule.py
。但是export PYTHONPATH=.
告诉 Python 也要在当前目录中查找。在这个例子中,它还会在mydir
中查找mymodule.py
。 - Arthur Tacca