PyCharm 中未解决的引用问题
- 2024-12-12 08:40:00
- admin 原创
- 267
问题描述:
我有一个目录结构
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
我可以使用 访问网络模块sys.path.insert()
。
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
但是 pycharm 抱怨无法访问该模块。我该如何教 pycham 解析引用?
解决方案 1:
像您所做的那样手动添加它确实是执行此操作的一种方法,但是还有一种更简单的方法,那就是简单地告诉 pycharm 您要将该src
文件夹添加为源根目录,然后将源根目录添加到您的 python 路径。
这样,您就不必将内容硬编码到解释器的设置中:
添加
src
为源内容根:
然后确保将添加源添加到您的
PYTHONPATH
下方:
Preferences ~ Build, Execution, Deployment ~ Console ~ Python Console
现在将解决导入问题:
这样,你可以添加任何你想要的源根,一切都会顺利进行。但是,如果你取消将其标记为源根,则会出现错误:
完成所有这些后,别忘了重启。在 PyCharm 菜单中,选择:文件 --> 使缓存无效/重启
解决方案 2:
检查文件夹
__init__.py
中的文件src
添加
src
文件夹作为源根目录然后确保将来源添加到您的
PYTHONPATH
(见上文)在 PyCharm 菜单中选择:文件 --> 使缓存无效 --> 重新启动
解决方案 3:
如果有人仍在关注这个问题,那么当我尝试时,接受的答案仍然适用于 PyCharm 2016.3。用户界面可能已更改,但选项仍然相同。
即右键单击您的根文件夹 -->“将目录标记为” --> 源根目录
解决方案 4:
测试所有解决方法后,我建议您查看Settings -> Project -> project dependencies
并重新安排它们。
解决方案 5:
通常,$PYTHONPATH 用于指示 Python 解释器找到必要的模块。PyCharm 需要在 Preference 中添加该路径。
解决方案 6:
发生这种情况的原因有多种。下面是解决大多数情况的几个步骤:
.idea 缓存问题
某些.idea
问题导致 IDE 显示错误,但代码仍可正确运行。解决方案:
关闭项目并快速 PyCharm
删除
.idea
项目所在的文件夹。请注意,这是一个隐藏文件夹,您可能不知道它在您的项目目录中的存在。启动 PyCharm 并重新创建项目
导入与项目文件夹无关的内容
当代码根文件夹与项目文件夹不同时,使用相对导入。解决方案:
在项目资源管理器中找到相对导入所需的文件夹
右键单击并将其标记为“Source Root”
编辑器未将init .py 标记为 Python,而是标记为文本
这是所有情况中最难理解的。这里,出于某种原因,PyCharm 认为所有__init__.py
文件都不是 Python 文件,因此在代码分析期间会忽略它们。要解决此问题:
打开 PyCharm 设置
导航至编辑器 -> 文件类型
找到 Python 并添加
__init__.py
到 python 文件列表中
或者
__init__.py
从文本文件列表中查找文本并删除
解决方案 7:
我克隆的项目有一个名为的目录modules
,并成功地在代码中使用了其中的文件import this as that
,但 Pycharm 无法跳转到那些代码片段,因为它无法识别导入。
在以下设置部分中标记模块文件夹source
以解决问题。
解决方案 8:
尽管所有答案都很有帮助,但有一小段信息需要明确解释:
本质上,具有多个分层目录的项目作为具有某些属性的包工作。
要导入自定义的本地创建的类,我们需要导航到包含
.py
文件的目录并__init__.py
在那里创建一个(空)文件。
这之所以有帮助,是因为这个文件是让 Python 将目录视为包含包所必需的。干杯!
解决方案 9:
一般来说,这是一个缺少包的问题,只需将插入符号放在未解决的引用处并按下Alt+Enter
以显示选项,然后您就知道如何解决它了。
解决方案 10:
通过 PyCharm 安装(适用于社区版)。打开Settings > Project > Project Interpreter
后单击下面屏幕截图中的绿色 + 图标。在打开的第二个对话框中,输入包名称并单击“安装包”按钮。
解决方案 11:
按照接受的答案后,执行以下操作可以为我解决问题:
File
→ Settings
→ Project <your directory/project>
→Project Dependencies
选择未解析导入的文件所在的目录/项目,然后选中该框以告诉 Pycharm 该项目依赖于您的其他项目。
我的文件夹层次结构与问题中的略有不同。我的是这样的
├── MyDirectory
│ └── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
告诉 Pycharm src 依赖于此,MyDirectory
为我解决了这个问题!
解决方案 12:
这对我有用:Top Menu -> File -> Invalidate Caches/Restart
解决方案 13:
很多时候发生的情况是插件没有安装。例如
如果您正在开发 django 项目,但未在 pyCharm 中安装 django 插件,则会显示错误“未解析的引用”。请参阅:
https: //www.jetbrains.com/pycharm/help/resolving-references.html
解决方案 14:
--> 在 PyCharm 中右键单击文件所在的目录
转到 --> 将目录标记为
选择--> 源根
你的问题将得到解决
解决方案 15:
我也使用了像上面的 Dan 这样的虚拟环境,但是我能够在现有环境中添加解释器,因此不需要继承全局站点包,从而撤消虚拟环境试图实现的目标。
解决方案 16:
请检查您是否使用了正确的解释器。我收到错误“未解析的引用‘django’”,为了解决这个问题,我从项目设置中更改了项目解释器(将 Python 3 更改为 Python 2.7):选择项目,转到文件 -> 设置 -> 项目:-> 项目解释器 -> 浏览并选择正确的版本或解释器(例如 /usr/bin/python2.7)。
解决方案 17:
就我的情况而言,问题在于我使用的Virtual environment
无法访问全局站点包。因此,解释器无法识别新安装的包。
要解决该问题,只需编辑或重新创建虚拟解释器并勾选该Inherit global site-packages
选项。
解决方案 18:
在 PyCharm 2019.3.1 中完成
右键单击您的 src 文件夹 -> “将目录标记为” -> 单击“排除”,您的 src 文件夹应该是蓝色的。
解决方案 19:
我尝试了这里的所有方法两次甚至更多次。我终于解决了这个问题,我做了一些我在网上没有见过的事情。如果你去,你会发现底部Settings>Editor>File Types
有一行。就我而言,我忽略了,这是我一直为我的虚拟环境命名的。所以我从要忽略的目录列表中删除了它,然后就好了!!我终于能够解决这个问题了。实际上,我为项目解决的所有导入问题都已修复。'Ignore Files and folders
`'venv'`venv;
顺便说一句,我使用 PyCharm 安装了每个软件包,而不是通过终端。(意思是,通过转到Settings>Interpreter...
)。我使缓存无效,更改了“Source Root”,重新启动了 PyCharm,刷新了我的解释器路径,更改了解释器,删除了我的 venv... 我什么都试过了。这终于奏效了。显然,这里有多个问题与不同的人有关,所以这可能对你不起作用,但如果其他方法都不起作用,这绝对值得一试,如果不行,也很容易逆转。
解决方案 20:
就我的情况来说:
Directory0
├── Directory1
│ └── file1.py
├── Directory2
│ ├── file2.py
在文件 1 中,我有:
from Directory2 import file2
其引发“未解析的引用 Directory2”。
我通过以下方式解决了它:
如上所述,将父目录 Directory0 标记为“源根”
和
将光标放在文件的另一行上,其中出现错误,以便将我的修改考虑进去
这很愚蠢,但如果我不执行第二个操作,错误仍然会出现,并且会让您认为您没有通过将父目录标记为源根目录来解决问题。
解决方案 21:
对我来说,将 virtualenv( venv
) 的 site-packages 路径添加到解释器的路径中是可行的。终于!
解决方案 22:
我遇到了同样的问题,也尝试了很多建议,但都没有奏效,直到我找到了这篇文章(https://stackoverflow.com/a/62632870/16863617)。尽管他的解决方案对我来说不起作用,但它帮助我想出了将_ init.py _ 添加到 -->设置 | 编辑器 | 文件类型 | Python | 注册模式中的想法
截屏
未解决的引用错误现已解决。
解决方案 23:
请注意,如果您遇到 python 解释器无法安装软件包的问题,只需将文件夹PycharmProjects
C:\Users'username'\PycharmProjects的权限更改为每个
解决方案 24:
如果在 Python 文件名中使用破折号,也会出现此问题,因此强烈不建议这样做。
解决方案 25:
我在安装 aiogram 时遇到了导入问题。与此同时,机器人可以工作,但 pyCharm 用红色突出显示导入,没有给出提示。我多次尝试了上述所有方法。结果,下面的方法对我有帮助:我在以下路径
c\Users...\AppData\Roaming\Python\Python310\site-packages中找到aiogram文件夹
,并将其复制到文件夹
C:\Program Files\Python310\Lib\site-packages
之后,我重置了 pyCharm,就这样!
解决方案 26:
就我的情况而言,使用 Pycharm 2019.3 时,问题在于我忘记将扩展名“.py”添加到要导入的文件。添加后,错误消失,无需使缓存无效或执行任何其他步骤。
解决方案 27:
Pycharm 使用 venv。您应该在 venv 的控制台中明确安装软件包或进入settings -> project interpreter -> add interpreter -> inherit global site-packages
。
解决方案 28:
修复此问题的最简单方法是在 pyCharm 软件中执行以下操作:
点击:文件 > 设置 > (项目:您的项目名称) > 项目解释器 >
然后点击右侧的“+”图标搜索您想要的包并安装。
享受编码!
解决方案 29:
在较新版本的 pycharm 中,您只需右键单击要从中导入文件的目录或 python 包,然后单击“将目录标记为”->“源根目录”即可
扫码咨询,免费领取项目管理大礼包!