Python 在PyCharm vs interactive shell中运行模块

Python 在PyCharm vs interactive shell中运行模块,python,pycharm,Python,Pycharm,我在交互式shell中运行模块时遇到问题: python modulea.py 我得到了一个导入错误和一些其他错误,在PyCharm中运行模块时没有看到这些错误。modulea.py位于其自己的包中,并引用另一个也位于其自己包中的模块。结构如下: package_a: --modulea.py --__init__.py package_b: --moduleb.py --__init__.py resources: --input.txt --output.txt from package

我在交互式shell中运行模块时遇到问题:

python modulea.py
我得到了一个导入错误和一些其他错误,在PyCharm中运行模块时没有看到这些错误。modulea.py位于其自己的包中,并引用另一个也位于其自己包中的模块。结构如下:

package_a:
--modulea.py
--__init__.py
package_b:
--moduleb.py
--__init__.py
resources:
--input.txt
--output.txt
from package_b import moduleb as b
with open("../resources/input.txt", "r", encoding="utf-8") as input_file:
在我的modulea.py中,我像这样导入moduleb:

package_a:
--modulea.py
--__init__.py
package_b:
--moduleb.py
--__init__.py
resources:
--input.txt
--output.txt
from package_b import moduleb as b
with open("../resources/input.txt", "r", encoding="utf-8") as input_file:
它的工作原理就像PyCharm中的一个符咒,但在从命令行运行时给我带来了恐惧。我如何在不改变项目结构的情况下解决这个问题?我还在打开txt文件,给出如下路径:

package_a:
--modulea.py
--__init__.py
package_b:
--moduleb.py
--__init__.py
resources:
--input.txt
--output.txt
from package_b import moduleb as b
with open("../resources/input.txt", "r", encoding="utf-8") as input_file:

这再一次让我在interactive shell中犯了错误,但在PyCharm中效果很好…

IDE的好处是,它们在幕后为我们做了很多“文书”工作,这使生活变得方便,生产力突飞猛进。然后是时候把它作为一个独立的平台来部署了,它并不是一个很好的平台

在本例中,PyCharm为您添加了以下内容:

如果您想要相同的功能,您需要模仿PyCharm的做法,即将内容/源根添加到$PYTHONPATH(或%PYTHONPATH%,如果在Windows上)中,它将按预期工作。希望这有帮助