我有一个目录结构

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

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

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

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


当前回答

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

截图

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

其他回答

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

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

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

对于我来说:

Directory0
    ├── Directory1
    │     └── file1.py  
    ├── Directory2
    │     ├── file2.py  

在file1中,我有:

from Directory2 import file2

它传输一个“未解决的引用Directory2”。

我是这样解决的:

如上所述,将父目录Directory0标记为“源根”

AND

把我的光标放在我有错误的文件上的另一行,这样它就会考虑到我的修改

这很愚蠢,但如果我不执行第二个操作,错误仍然会出现,并可能使您认为您没有通过将父目录标记为Source Root来解决问题。

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

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

一般来说,这是一个丢失包的问题,只需在未解决的引用处放置插入符号,并按Alt+Enter显示选项,然后您应该知道如何解决它。