PyCharm 无法识别已安装的模块

2024-12-31 08:37:00
admin
原创
191
摘要:问题描述:我在 Mac 上使用“requests”模块时遇到了麻烦。我使用 python34,并通过 pip 安装了“requests”模块。我可以通过再次运行安装来验证这一点,它会显示模块已安装。15:49:29|mymac [~]:pip install requests Requirement alre...

问题描述:

我在 Mac 上使用“requests”模块时遇到了麻烦。我使用 python34,并通过 pip 安装了“requests”模块。我可以通过再次运行安装来验证这一点,它会显示模块已安装。

15:49:29|mymac [~]:pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages

尽管我可以通过交互式 Python 解释器导入“requests”模块,但尝试在 PyCharm 中执行“import request”时会出现错误“没有名为请求的模块”。我检查了我的 PyCharm Python 解释器设置,并且(我相信)它设置为与我的环境中使用的相同的 python34。但是,我在 PyCharm 中也看不到列出的“requests”模块。

PyCharm Python 解释器设置

很明显我在这里遗漏了一些东西。你们能建议我应该在哪里查看或修复什么才能使这个模块正常工作吗?我一直以为当我在我的环境中通过 pip 安装模块时,PyCharm 会检测到这些变化。然而,似乎我这边出了问题……


解决方案 1:

就我而言,使用预先存在的虚拟环境在编辑器中不起作用 - 所有模块都被标记为未解析的引用(运行自然有效,因为这在编辑器的配置之外,只是运行外部进程(不太容易调试))。

原来 PyCharm 没有添加site-packages目录... 解决方法是手动添加它。

在 Pycharm 专业版 2022.3 上

打开文件 -> 设置 -> Python 解释器,打开下拉菜单并选择“显示全部...”(编辑配置)(1),右键单击您的解释器(2),单击“显示解释器路径”(3)。

在该屏幕中,手动添加虚拟环境的“site-packages”目录[看起来像.../venv/lib/python3.8/site-packages(4)(为了达到更好的效果,我还添加了“Lib”);一旦完成并保存,它们就会出现在解释器路径中。

步骤

另一件不会造成损害的事情是在解释器的编辑框中选择“将此虚拟环境与当前项目关联”。

解决方案 2:

如果您使用的是 PyCharms CE(社区版),请点击:

File->Default Settings->Project Interpreter

屏幕截图:解释器设置

看到底部的 + 号,单击它。它将打开另一个对话框,其中包含大量可用模块。选择您的包(例如请求),PyCharm 将完成剩下的工作。

解决方案 3:

当您使用的软件包安装在环境之外时(例如 Anaconda 或 virtualenv),就会出现此问题。为了让 PyC​​harm 识别安装在特定环境之外的软件包,请执行以下步骤:

转至

Preferences-> Project-> Project Interpreter-> 3 dots- Show All>
Select relevant interpreter-> 单击树图标Show paths for the selected interpreter

现在检查有哪些可用的路径,并将指向环境之外的包安装目录的路径添加到解释器路径。

要查找包位置,请使用:

$ pip show gym
Name: gym
Version: 0.13.0
Summary: The OpenAI Gym: A toolkit for developing and comparing your reinforcement learning agents.
Home-page: https://github.com/openai/gym
Author: OpenAI
Author-email: gym@openai.com
License: UNKNOWN
Location: /usr/local/lib/python3.7/site-packages
...

将位置下指定的路径添加到解释器路径中

/usr/local/lib/python3.7/site-packages

然后,让索引完成并可能另外重新打开您的项目。

解决方案 4:

打开 pyCharm 的 python 控制台。单击“重新运行”。它会在第一行显示以下内容

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Applications/PyCharm.app/Contents/helpers/pydev/pydevconsole.py 52631 52632

在这种情况下,pyCharm 使用以下解释器

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 

现在启动控制台并运行以下命令

sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -m pip install <name of the package>

这应该会安装你的包:)

解决方案 5:

Pycharm 无法识别已安装的本地模块,因为选择的 Python 解释器错误。它应该是安装 pip 包的那个,即虚拟环境。

我在 Windows 中通过 pip 安装了软件包。在 Pycharm 中,既没有检测到它们,也没有显示任何其他 Python 解释器(我的系统上只安装了 python 3.6)。

在此处输入图片描述

我重新启动了 IDE。现在我能够看到在虚拟环境中创建的 Python 解释器。选择该 Python 解释器,您的所有包都将显示并检测到。尽情享受吧!

在此处输入图片描述

解决方案 6:

使用双 python2.73.4作为2.7默认设置,我一直使用 pip3 为3.4解释器安装模块,并pip为解释器安装模块2.7

尝试一下:

pip3 install requests

解决方案 7:

这是因为您在创建项目时没有选择两个选项: - 继承全局站点包 使其对所有项目可用现在您需要创建一个新项目,并且不要忘记在选择项目解释器时勾选这两个选项。

解决方案 8:

在进一步讨论之前,我想指出如何在PyCharm中配置Python解释器:[SO]:如何使用“可嵌入的 zip 文件”安装 Python(@CristiFati 的答案)。虽然这个问题是针对Win 的,并且有一些特殊性,但配置PyCharm足够通用,应该适用于任何情况(略有变化)。

造成这种行为的原因可能有多种。

1. Python实例不匹配

  • 当一台机器上有多个Python实例(已安装、VEnvsConda、自定义构建等)时,就会发生这种情况。用户认为他们正在使用一个特定实例(具有一组属性(已安装的包)),但实际上他们正在使用另一个实例(具有不同的属性),因此会造成混淆。当两个实例具有相同的版本(并且位置相似)时,很难弄清楚事情

  • 发生这种情况主要是由于环境配置(无论哪个路径在${PATH}中排在第一位,别名(在Nix上),......)

  • 不是PyCharm特有的(这意味着它更通用,也会在 PyCharm 之外发生),但一个典型的PyCharm相关示例是不同的控制台解释器和项目解释器,从而导致混淆

  • 解决方法是,在使用PythonPIP等工具时指定完整路径(并注意它们)。有关更多详细信息,请查看[SO]: 如何在 Windows 10 上为特定 Python 版本安装软件包?(@CristiFati 的回答)

  • 这正是这个问题存在的原因。涉及2个Python版本:

1. 项目解释器:*/Library/Frameworks/Python.framework/Versions/3.4*
2. 具有*Requests*模块的解释器:***/opt/local** /Library/Frameworks/Python.framework/Versions/3.4*好吧,假设这两条路径没有某种关联(*SymLink* ed),但在我有机会检查的最新*OSX版本中(* *Catalina*、*Big Sur*、*Monterey*)这种情况不会发生(默认情况下)

处理此类错误时,显示以下信息(在脚本或解释器控制台中)总是有帮助的(最有可能):

import os
import sys


print("Executable:", sys.executable)
print("Version:", sys.version)
print("CWD:", os.getcwd())
print("UName:", getattr(os, "uname", lambda: None)())
for evn in ("PATH", "PYTHONHOME", "PYTHONPATH"):
    print("{:s}: {:}".format(evn, os.environ.get(evn)))
print("sys.path:", sys.path)

2. Python的模块搜索机制误解

  • 根据[Python.Docs]:模块 - 模块搜索路径:

当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。这些模块名称列在sys.builtin_module_names中。如果未找到,它会搜索变量sys.pathspam.py给出的目录列表中指定的文件。sys.path从以下位置初始化:

+ 包含输入脚本的目录(未指定文件时为当前目录)。
+ PYTHONPATH(目录名称列表,语法与 shell 变量 PATH 相同)。
+ 安装相关的默认值(按照惯例包括一个目录,由站点`site-packages`模块处理)。

模块可能位于当前目录中,或者其路径可能添加到${PYTHONPATH}中。这可能会欺骗用户,让他们相信该模块实际上安装在当前Python实例(的site-packages )中。但是,当从其他目录(或使用不同的${PYTHONPATH} )运行当前Python实例时,该模块将会丢失,从而带来很多麻烦

  • 有点相关的场景:[SO]:ModuleNotFoundError:没有名为“cryptography.hazmat”的模块;“cryptography”不是一个包(@CristiFati 的回答)

  • 如需修复,请检查[SO]: PyCharm 的导入方式与系统命令提示符(Windows)有何不同(@CristiFati 的答案)

3. PyCharm 的一个错误

  • 可能性不大,但确实会发生。一个例子(与这个问题无关):[SO]:PyCharm 2019.2 没有显示异常回溯(@CristiFati 的回答)

  • 要修复此问题,请按照上述URL中的其中一个选项操作

4. 一个小故障

  • 不太可能,但还是要提一下。由于某些原因(例如硬件/软件故障),系统最终处于不一致状态,产生各种奇怪的行为

  • 可能的修复:

+ 重启*PyCharm*
+ 重启机器
+ 重新创建项目(从项目中删除*.idea* *目录)*
+ 重置*PyCharm*设置:从菜单中选择*文件 -> 管理 IDE 设置 -> 恢复默认设置...。*查看[JetBrains]: 配置 PyCharm 设置或[JetBrains.IntelliJ-Support]: 更改用于配置、插件和缓存存储的 IDE 默认目录以了解更多详细信息
+ 重新安装*PyCharm*不用说,最后两种选择**只能作为最后的手段**,而且只能由专家来尝试,因为它们可能会搞乱其他项目,甚至无法解决问题

与问题无直接关系,但发布:

  • [SO]:从 PyCharm 社区版中的鼠标右键单击上下文菜单运行/调试 Django 应用程序的单元测试?(不久前的PyCharm相关调查)

  • [SO]:ImportError:没有名为 win32com.client 的模块(@CristiFati 的回答)

解决方案 9:

解决方案很简单(PyCharm 2021.2.3 社区版)。我使用的是 Windows,但用户界面应该相同。在项目树中,打开外部库 > Python 解释器 > venv > pyvenv.cfg。然后更改:

include-system-site-packages = false

到:

include-system-site-packages = true

PyCharm 图像

解决方案 10:

  1. 如果您进入pycharm项目解释器 -> 单击其中一个已安装的软件包,然后悬停 -> 您将看到pycharm软件包的安装位置。这是您应该安装软件包的位置。

  2. 现在如果你执行sudo -H pip3 install <package>

  3. 将它安装到不同的目录,即/usr/local/lib/site-packages

因为它与已知的目录不同pycharm因此您的包没有显示在pycharm

pycharm解决方案:只需前往文件->设置->项目->项目解释器->单击(+)并搜索要安装的包,然后单击确定即可安装包。

-> 系统将提示您包已成功安装,并且您将看到它pycharm

解决方案 11:

如果有人遇到同样的问题,即他/她安装了 Python 包,但 PyCharm IDE 没有显示这些包,那么请按照以下步骤操作:

  1. 转到 PyCharm IDE 左侧的项目,然后

  2. 点击 venv 库

  3. 在任何编辑器中打开 pyvenv.cfg 文件,然后

  4. 将这段代码(include-system-site-packages = flase)从 false 更改为 true

  5. 然后保存并关闭它然后关闭 pycharm

  6. 再次打开 PyCharm,您的问题就解决了。谢谢

解决方案 12:

这也让我很头疼,结果发现我唯一需要做的就是重启 Pycharm。有时安装完 pip 后,即使 pip 在设置中显示为已安装,也无法将其加载到项目中。真糟糕。

解决方案 13:

对于Anaconda

启动 Anaconda Navigator -> 环境 -> “Your_Enviroment” -> 更新索引 -> 重新启动 IDE。

帮我解决了。

解决方案 14:

在 pip 安装完我需要的一切之后。我转到解释器并将其重新指向原来的位置。我的情况:在 /anaconda3/bin/python 中使用 virtualenv 的 python3.6...

此外,在我点击加号“+”安装新软件包之前,我必须取消选择其右侧的 conda 图标。看起来情况正好相反,但只有这样它才能通过查询识别出我拥有/需要的软件包。

解决方案 15:

就我而言,这些软件包是通过 setup.py + easy_install 安装的,它们最终位于 site_package 目录中的 *.egg 目录中,python 可以识别这些目录,但 pycharm 无法识别。

我将它们全部删除,然后使用 pip install 重新安装,之后它就可以正常工作了,幸运的是,我正在从事的项目提出了一个 requirements.txt 文件,因此它的命令是:

pip 安装 -r./requirement.txt

解决方案 16:

我刚刚在一个全新的安装/项目中遇到了这个问题,但我使用的是 IntelliJ IDEA 的 Python 插件。它本质上与 PyCharm 相同,但项目设置略有不同。对我来说,该项目指向正确的 Python 虚拟环境,但甚至内置模块都无法被识别。

事实证明,SDK 类路径为空。我添加了 venv/lib/python3.8 和 venv/lib/python3.8/site-packages 的路径,问题就解决了。文件->项目结构,在平台设置下,单击 SDKs,选择您的 Python SDK,并确保类路径在那里。

在此处输入图片描述

解决方案 17:

pip install --user discord

上面的命令解决了我的问题,只需使用“--user”标志

解决方案 18:

我通过直接安装到解释器解决了我的问题。转到设置并点击正在使用的解释器下方的“+”,然后搜索包并安装。我相信我遇到这个问题是因为我没有用我的 venv 正确设置解释器(不太确定,但这解决了它)。

我在使用 djangorestframework-simplejwt 时遇到了问题,因为它是启动当前项目之前我未从以前的项目安装到此解释器的第一个包,但对于任何其他未显示为已导入的包应该可以使用。重申一下,我认为这是一种解决方法,但不能解决导致此问题的设置问题。

在此处输入图片描述

解决方案 19:

如果您遇到底层问题(即 pycharm 的语言服务器),请将所有内容标记为 root 并创建一个新项目。查看详细信息:https ://stackoverflow.com/a/73418320/1601580仅当我使用 pip 以可编辑模式安装软件包时(即 pip install -e . 或 conda evolve),这似乎才让我感到高兴。详细信息: https: //stackoverflow.com/a/73418320/1601580

解决方案 20:

--WINDOWS-- 如果使用 Pycharm GUI 包安装程序可以很好地为您的虚拟环境安装包,但您无法在终端中执行相同操作,

这是因为你没有在终端中设置虚拟环境,相反,你的终端使用了不使用虚拟环境的 Power Shell

命令行前面应该有 (venv),而不是 (PS)

如果你有(PS),这意味着你的终端正在使用 Power Shell 而不是 cmd

要解决此问题,请单击向下箭头并选择命令提示符

选择命令提示符

现在你将获得 (venv),只需输入 pip install #package name#,该包就会添加到你的虚拟环境中

解决方案 21:

我尝试了所有的答案,但都不起作用!

“如果你很懒!临时答案是:”

您应该考虑找到 PyCharm 实际通过终端中的 pip 安装库的路径,并将其添加到您的项目中,如下图所示!

1_转到解释器设置:

IT科技

2_ 点击“显示全部”:

IT科技

3_找到当前项目解释器并单击显示所选解释器的路径:

IT科技

4_现在尝试添加您认为 pip 可能会安装库的不同路径,它会将该路径中的所有库添加到您的新项目中:

IT科技

解决方案 22:

值得补充的是,当所有路径、虚拟环境/系统解释器都是正确时,即使如此,PyCharm 仍可能会不高兴;

原因可能很简单,比如包名称的大写字母;例如当requirements.txt包含flaskwerkzeugPyCharm 告诉我“包未安装”时,即使它显然已经安装;解释器本身没有任何困难,一般来说导入没有错误;

将其更改为Flask,,WerkzeugPyCharm 很高兴

解决方案 23:

在 Windows 上,我必须先进入 venv 文件夹,然后再进入 scripts 文件夹,然后 pip install module 才能开始工作

cd venv
cd scripts
pip install module

解决方案 24:

不要在终端 -> 本地使用终端 -> 命令提示符中运行pip install

参见下图

pycharm_command_prompt_image

1

解决方案 25:

在 pycharm 终端中运行 pip/pip3 install package_name

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用