我有一个目录结构

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

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

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

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


当前回答

这里所有的东西我都试过两次,甚至更多。我最终解决了这个问题,做了一些我在网上从未见过的事情。如果你去>编辑器>文件类型的设置,在底部有一个“忽略文件和文件夹”行。在我的例子中,我忽略了“venv”,这是我的虚拟环境的名字。所以我去掉了venv;从目录列表中忽略,瞧!!我终于解决了这个问题。实际上,我在这个项目中遇到的所有导入问题都得到了解决。

BTW, I had installed each and every package using PyCharm, and not through a terminal. (Meaning, by going to Settings>Interpreter...). I had invalidated cache, changed 'Source Root', restarted PyCharm, refreshed my interpreters paths, changed interpreters, deleted my venv... I tried everything. This finally worked. Obviously there are multiple problems going on here with different people, so this may not work for you, but it's definitely worth a shot if nothing else has worked, and easy to reverse if it doesn't.

其他回答

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

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

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

添加src作为源内容根:

                           

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

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

                     

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

                                 

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

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

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

截图

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

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