我有一个目录结构

├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

我可以使用sys.path.insert()访问网络模块。

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

但是,pycharm抱怨它无法访问该模块。我如何教pycham解决引用?


当前回答

在SRC文件夹中检查__init__.py文件 添加SRC文件夹作为源根目录 然后确保将源代码添加到PYTHONPATH(参见上面) 在PyCharm菜单中选择:File——> Invalidate Caches——> Restart

其他回答

通常,$PYTHONPATH用于教python解释器查找必要的模块。PyCharm需要在Preference中添加路径。

Pycharm使用venv。在venv的控制台中,您应该显式地安装包或进入设置->项目解释器->添加解释器->继承全局站点包。

在遵循公认的答案后,做以下的事情为我解决了这个问题:

文件→设置→项目<您的目录/项目>→项目依赖项

选择未解决导入的文件所在的目录/项目,并选中复选框,告诉Pycharm该项目依赖于您的其他项目。

我的文件夹层次结构与问题中的略有不同。我的是这样的

├── MyDirectory  
│     └── simulate.py  
├── src  
│     ├── networkAlgorithm.py  
│     ├── ...

告诉Pycharm src依赖MyDirectory解决了我的问题!

如果有人还在看这个问题,当我尝试它时,接受的答案仍然适用于PyCharm 2016.3。UI可能已经更改,但选项仍然相同。

ie。右键单击根文件夹——>“标记目录为”——>源根

手动添加它确实是一种方法,但是有一种更简单的方法,那就是简单地告诉pycharm您想要添加src文件夹作为源根,然后将源根添加到您的python路径。

这样,你就不必在解释器的设置中硬编码:

添加src作为源内容根:

                           

然后确保在PYTHONPATH下面添加add sources: 首选项~构建、执行、部署~控制台~ Python控制台

现在进口问题将得到解决:

                     

通过这种方式,您可以添加任何您想要的源根,并且事情将简单地工作。但是,如果你没有将它标记为源根,你会得到一个错误:

                                 

完成所有这些后,不要忘记重新启动。在PyCharm菜单中选择:File——> Invalidate Caches / Restart