Import语句对PyCharm有效,但不从term

2024-03-28 20:54:57 发布

您现在位置:Python中文网/ 问答频道 /正文

Pycharm 2016.2.3、Mac OS X 10.11.1、Python 3.5(自制)

我有这个文件夹结构

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跑出来的时候效果很好。然而,当我从我的终端运行它时,我得到了一个重要的恐惧:

$ 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'

我发现了this question,这也是一个问题。但是,没有一个建议的解决方案对我有效,因为我确实使用了与PyCharm相同的Python解释器,而且我当前位于包含somepackage/文件夹的文件夹中。

有没有人对如何解决这个问题有其他的建议?谢谢你的好意!


Tags: pyimportproject文件夹fooinitmacbar
1条回答
网友
1楼 · 发布于 2024-03-28 20:54:57

您像脚本一样运行foo.py,但实际上像模块一样使用它。因此,正确的解决方案是将其作为模块运行:

python3 -m somepackage.foo

对于记录,另一种选择是编辑路径,如下所示:

export PYTHONPATH=.

(或者你可以把绝对目录放在那里,当然你应该附加任何已经在PYTHONPATH中的其他目录)这更接近PyCharm所做的,但在哲学上不太正确。

相关问题 更多 >