我已经编写了一个模块(位于文件my_mod.py
夹中的文件文件my_module
)。目前,我正在处理文件cool_script.py
夹中的文件cur_proj
。我已经使用File-open在PyCharm中打开了该文件夹(我假设是一个PyCharm项目)。
在ProjectView(CMD-7)中,我可以看到我的项目cur_proj
(红色),并且在“外部库”下可以看到my_module
。在cool_script.py中,我可以写
from my_module import my_mod as mm
PyCharm甚至建议my_mod。到目前为止,一切都很好。
但是,当我尝试运行cool_script.py时,PyCharm告诉我 “没有名为my_module的模块”
我觉得这很奇怪,因为
A)在终端(OS 10.10.2)中,在python中,我可以导入模块没有问题-.bashrc中的PYTHONPATH中有相应的条目
B)在PyCharm中-设置-项目cur_proj-项目解释器-python解释器旁边的CogWheel-更多-显示所选解释器图标的路径,PYTHONPATH的路径确实出现(我认为应该如此)
因此,为什么在尝试运行cool_script.py时出现错误?- 我想念什么?
笔记:
- 我没有在cool_script.py顶部声明其他/特殊的python版本
- 我确保路径
my_module
正确 - 我将
__init__.py
文件(空文件)都my_module
放入cur_proj
- 我没有用
virtualenv
附录2015年2月25日
当我进入PyCharm以运行-编辑配置时,对于当前项目,有两个选中的选项带有复选标记:“ 将内容根添加到PYTHONPATH ”和“ 将源根添加到PYTHONPATH ”。当我都取消选中时,我可以加载我的模块。
现在就可以了- 但是为什么呢?
出现了其他问题:
- 什么是“内容根”和什么是“源根”?为什么在PYTHONPATH中添加一些内容却使其以某种方式中断?
- 我是否应该一直取消选中这两个选项(在默认设置中也要取消选中这两个选项,而不是仅针对项目特定的配置(“运行/调试配置”对话框的左侧面板)?
Enable Django Support
的是取消选中Languages & Frameworks -> Django
Pro版本的PyCharm 中的设置。它正在打开一个导致导入问题的django控制台。
from foldername.mymodule import mymethod
。我要做的另一件事是在用于获取模块的所有文件夹中添加空的_init .py文件夹,以便在from parentfolder.childfolder.mymodule ...
需要将init放在两个文件夹中的情况下使用。根据文件夹相对于彼此的位置,您可能需要sys.path
按照此答案中的说明