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

时间:2018-04-14 08:15:04

标签: python pycharm

我目前正在使用pycharm来编写python,但是在导入本地代码方面遇到了令人讨厌的障碍。我确定它是由于我配置pycharm的方式,但我无法弄明白。

我的项目看起来像这样

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

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

正在运行

import os
os.getcwd() 
交互式控制台和命令行中的

都返回D:\\project_folder,所以我有点不知道为什么这种行为如此不同。

2 个答案:

答案 0 :(得分:1)

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

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

sys.path.append('./code/')的效果相同,但我相信它有点难看。

答案 1 :(得分:0)

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

来解决问题
import sys
sys.path.append('./code/')

在我的程序顶部