我有一个目录结构

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

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

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

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


当前回答

在我的情况下,问题是我使用的虚拟环境,没有访问全局站点包。因此,解释器不知道新安装的包。

要解决这个问题,只需编辑或重新创建虚拟解释器,并勾选“继承全局站点包”选项。

其他回答

在新版本的pycharm中,只需右键单击想要导入文件的目录或python包,然后单击“标记目录为”->“源根”

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

虽然所有的答案都很有帮助,但有一小部分信息应该明确解释:

本质上,具有多个层次目录的项目作为具有某些属性的包工作。 要导入自定义本地创建的类,我们需要导航到包含.py文件的目录,并在那里创建一个__init__.py(空)文件。

这之所以有用,是因为需要这个文件才能使Python将该目录视为包含包的目录。干杯!

如果在Python文件名中使用破折号,也会出现此问题,因此强烈不建议这样做。

在PyCharm中右键单击文件所在的目录 转到——>标记目录为 选择——>源根

你的问题会解决的