我有一个目录结构

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

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

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

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


当前回答

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

其他回答

在我的例子中,使用Pycharm 2019.3,问题是我忘记向我想导入的文件添加扩展名“.py”。一旦添加,错误就会消失,而不需要使缓存无效或任何其他步骤。

我也使用了像上面Dan那样的虚拟环境,但是我能够在现有的环境中添加一个解释器,因此不需要继承全局站点包,从而撤销虚拟环境试图实现的目标。

我也有同样的问题,也尝试了很多建议,但没有一个有效,直到我发现了这篇文章(https://stackoverflow.com/a/62632870/16863617)。尽管他的解决方案对我不起作用,但它帮助我想出了将_init.py_添加到——>设置|编辑器|文件类型| Python |注册模式的想法

截图

未解决的引用错误现在已经解决。

最简单的解决方法是在pyCharm软件中执行以下操作:

点击:File > Settings > (Project: your Project name) > Project Interpreter >

然后点击右边的“+”图标,搜索你想要的软件包并安装它。

享受编码吧!!

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

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

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