我目前正在使用 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/')
在我的程序的顶部