我已经编写了一个模块(文件 my_mod.py
文件位于文件夹 my_module
中)。
目前,我正在处理位于文件夹 cur_proj
中的文件 cool_script.py
。我已经使用 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 -- Settings -- Project cur_proj -- Project Interpreter -- CogWheel 在 python 解释器旁边 -- 更多 -- 显示所选解释器图标的路径,来自 PYTHONPATH 的路径确实出现(我认为它们应该出现)
因此,当我尝试运行cool_script.py 时,为什么会出现错误? -- 我错过了什么?
注意事项:
- 我是 not declaring a different / special python version在cool_script.py 的顶部
- 我确定 the path to
my_module
is correct - 我 put
__init__.py
files (empty files)在my_module
和cur_proj
中
- 我没有使用
virtualenv
2015 年 2 月 25 日附录
当我进入 PyCharm 运行 -- 编辑配置时,对于我当前的项目,有两个选项带有复选标记:“将内容根添加到 PYTHONPATH”和“将源根目录添加到 PYTHONPATH"。当我都未选中时,我可以加载我的模块。
所以它现在可以工作了——但是为什么?
出现了更多问题:
- 什么是“内容根”,什么是“源根”?为什么向 PYTHONPATH 添加一些东西会导致它以某种方式中断?
- 我是否应该一直取消选中这两个选项(在默认设置中,不仅是项目特定配置(运行/调试配置对话框的左侧面板)?
最佳答案
如果您自己的模块在同一路径中,则需要将该路径标记为Sources Root
。在项目资源管理器中,右键单击要导入的目录。然后选择 Mark Directory As
并选择 Sources Root
。
关于python - PyCharm 错误 : 'No Module' when trying to import own module (python script),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705029/