我有一个目录结构

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

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

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

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


当前回答

我克隆的项目有一个名为modules的目录,并成功地在import this as that的代码中使用了那里的文件,但Pycharm无法跳转到那些代码片段,因为它无法识别导入。

将下面设置部分中的模块文件夹标记为源解决了这个问题。

其他回答

这里所有的东西我都试过两次,甚至更多。我最终解决了这个问题,做了一些我在网上从未见过的事情。如果你去>编辑器>文件类型的设置,在底部有一个“忽略文件和文件夹”行。在我的例子中,我忽略了“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.

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

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

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

通过PyCharm安装(适用于社区版)。打开设置>项目>项目解释器,然后点击下面截图中的绿色+图标。在打开的第二个对话框中,输入软件包名称并单击“Install package”按钮。

为什么会发生这种情况有几个原因。以下是修复大多数此类情况的几个步骤:

.idea缓存问题

一些.idea问题导致IDE显示错误,而代码仍然正确运行。解决方案:

关闭项目并快速PyCharm 删除项目所在的。idea文件夹。请注意,它是一个隐藏文件夹,您可能不知道它存在于项目目录中。 启动PyCharm并重新创建项目

导入相对于项目文件夹

相对导入,而代码根文件夹与项目文件夹不相同。解决方案:

在项目资源管理器中找到相关导入所需的文件夹 右键单击并标记为“Source Root”

编辑器没有将init.py标记为Python而是文本

这是所有案例中最令人难以置信的。在这里,出于某种原因,PyCharm认为所有__init__.py文件都不是python文件,因此在代码分析时忽略了它们。要解决这个问题:

打开PyCharm设置 导航到编辑器->文件类型 找到Python并将__init__.py添加到Python文件列表中

or

找到Text并从文本文件列表中删除__init__.py

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