我有一个目录结构

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

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

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

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


当前回答

我在安装aigram时遇到了一个重要问题。与此同时,机器人工作了,但pyCharm用红色突出显示导入,并且没有给出提示。以上这些方法我都试过很多次了。结果,以下操作帮助了我:我在以下路径找到了aiogram文件夹 Python c…\ AppData \ \用户漫游\ \ Python310 \网站 然后复制到文件夹里 C:\Program Files\Python310\Lib\网站 在那之后,我重置pyCharm,就是这样!

其他回答

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

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

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

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

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

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

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

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

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

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

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

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