(皮查姆)在交互式控制台和命令行中导入之间的差异



我目前正在使用 pycharm 编写 python,但在导入本地代码方面遇到了一个烦人的障碍。我确定这是由于我配置 pycharm 的方式,但我无法弄清楚。

我的项目看起来像这样

project_folder
     |
     |___code
     |     |__ __init__.py
     |     |__ funs.py
     |     |__ prog.py
     |    
     |___Other folders

因此,在 prog.py 内,当我从project_folder级别运行python ./code/prog.py时,我import funs工作正常。 但是,当我在pycharm的交互式控制台中时,会出现此错误。我能让它在交互式控制台中工作的唯一方法是运行 import code.funs .

运行

import os
os.getcwd() 

在交互式控制台和命令行中都返回D:\project_folder所以我有点不知所措,为什么它的行为如此不同。

当你运行python ./code/prog.py Python会向PYTHONPATH添加code,以便import funs解析。默认情况下,在 PyCharm 中运行时,仅将项目根目录添加到PYTHONPATH因此找不到funs

一个简单的解决方法code是通过右键单击 |将目录标记为 ... |源根目录。PyCharm 会将所有源根添加到 PYTHONPATH 中。

sys.path.append('./code/')的工作原理是一样的,但我相信它有点丑陋。

作为参考,我设法通过包括

import sys
sys.path.append('./code/')

在我的程序的顶部

最新更新