[英]PyCharm doesn't recognize installed module
我在 Mac 上使用“请求”模块时遇到问题。 我使用 python34 并通过 pip 安装了“请求”模块。我可以通过再次运行安装来验证这一点,它会告诉我该模块已经安装。
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 解释器导入“请求”模块,但尝试在 PyCharm 中执行“导入请求”会产生错误“没有名为请求的模块”。 我检查了我的 PyCharm Python 解释器设置,(我相信)它设置为与我的环境中使用的相同的 python34。 但是,我也看不到 PyCharm 中列出的“请求”模块。
很明显,我在这里遗漏了一些东西。 你们能建议我应该在哪里看或者我应该修复什么才能让这个模块工作吗? 我的印象是当我在我的环境中通过 pip 安装模块时,PyCharm 会检测到这些变化。 但是,我这边好像有什么东西坏了……
在我的情况下,使用预先存在的 virtualenv 在编辑器中不起作用 - 所有模块都被标记为未解析的引用(运行自然有效,因为这在编辑器的配置之外,只是运行一个外部进程(调试不太容易) )。
原来 PyCharm 没有添加site-packages目录......修复是手动添加它。
打开文件 -> 设置 -> 项目解释器,选择“显示全部...”(编辑配置)(1),选择您的解释器(2),然后单击“显示所选解释器的路径”(3)。
在该屏幕中,手动添加虚拟环境的“site-packages”目录(4)(我也添加了“Lib”,这是一个很好的措施); 一旦完成并保存,它们将出现在解释器路径中。
另一件不会有坏处的事情是在解释器的编辑框中选择“将此虚拟环境与当前项目关联”。
打开 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>
这应该安装你的包:)
当您使用的软件包安装在环境之外(例如 Anaconda 或 virtualenv)时,就会出现此问题。 为了让 PyCharm 识别安装在特定环境之外的包,请执行以下步骤:
去
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
...
将Location下指定的路径添加到解释器路径,这里
/usr/local/lib/python3.7/site-packages
然后,让索引完成并可能另外重新打开您的项目。
使用双 python 2.7
和3.4
,默认为2.7
,我一直使用 pip3 为3.4
解释器安装模块,并使用pip
为2.7
解释器安装模块。
尝试这个:
pip3 install requests
这是因为您在创建项目时没有选择两个选项:- ** 继承全局站点包 ** 可用于所有项目 现在您需要创建一个新项目,并且在选择项目解释器时不要忘记勾选这两个选项.
如果您转到pycharm
项目解释器 -> 单击已安装的包之一,然后将鼠标悬停 -> 您将看到pycharm
安装包的位置。 这是您应该安装软件包的地方。
现在,如果你做了sudo -H pip3 install <package>
pip3 将它安装到不同的目录,即/usr/local/lib/site-packages
因为它与pycharm
知道的目录不同,因此您的包没有显示在pycharm
中。
解决方案:只需使用pycharm
安装包,方法是转到 File->Settings->Project->Project Interpreter -> 单击 (+) 并搜索要安装的包,然后单击确定。
-> 系统会提示你安装包成功,你会看到它pycharm
。
这也引起了我的注意,事实证明,我唯一需要做的就是重新启动 Pycharm。 有时在安装 pip 后,即使 pip 在设置中显示为已安装,也无法将其加载到项目中。 真可惜。
对于蟒蛇:
启动 Anaconda Navigator -> 环境 -> “Your_Enviroment” -> 更新索引 -> 重新启动 IDE。
为我解决了。
在 pip 安装我需要的一切之后。 我去找口译员,把它重新指向原来的位置。 我的案例:/anaconda3/bin/python 中的 python3.6 使用 virtualenv ...
此外,在我点击加号“+”安装新软件包之前。 我不得不取消选择它右侧的 conda 图标。 似乎情况正好相反,但只有到那时它才通过查询识别出我拥有/需要的包。
在我的情况下,这些软件包是通过 setup.py + easy_install 安装的,它们最终位于 site_package 目录中的 *.egg 目录中,python 可以识别但 pycharm 不能识别。
我将它们全部删除,然后用 pip install 重新安装,然后它就可以工作了,幸运的是我正在处理的项目提出了一个 requirements.txt 文件,所以它的命令是:
pip install -r ./requirement.txt
在 Windows 上,我必须 cd 进入 venv 文件夹,然后 cd 进入脚本文件夹,然后 pip install 模块开始工作
cd venv
cd scripts
pip install module
我在使用 Virtualenv 创建项目时遇到了这个问题。
Neeraj Aggarwal 建议的解决方案对我有用。 但是,如果您不想创建新项目,那么以下可以解决问题。
pip install --user discord
上面的命令解决了我的问题,只需使用“--user”标志
我通过 python 包选项卡安装了包,它开始工作
如果有人遇到同样的问题,他/她安装了 python 软件包,但 PyCharm IDE 没有显示这些软件包,请按照以下步骤操作:
有人在 web 上报告了此问题,但似乎没有任何响应。 可能的解决方案:
在左侧窗格中,您应该定义代码的根目录所在的位置。 Go 到相关目录(在左侧窗格中),右键单击鼠标,在底部您将目录标记为然后 select “源根”。 资源
src
文件夹标记为源的根目录见
File
|Settings
(Mac 上的Preferences
)|Editor
|File Types
。 查找映射到文本类型或按内容类型自动检测文件类型的文件名。 删除不正确的映射,它将解决问题。 如果在 IDE 设置中仍然找不到错误的映射,请在Configuration directory中找到options/filetypes.xml
文件。 关闭 IDE 并编辑此文件以删除不正确的映射或删除此文件以将所有文件类型重置为默认值。
File
| Manage IDE Settings
| Restore Default Settings
在继续之前,我想指出如何在PyCharm中配置Python解释器:
[SO]:如何使用“嵌入式 zip 文件”安装 Python(@CristiFati 的回答) 。
这种行为有多种可能的原因。
当一台机器上有多个Python实例(已安装、 VEnvs 、定制......)时会发生。 用户认为他们正在使用一个特定的实例(具有一组属性(已安装的包)),但实际上他们正在使用另一个实例(具有不同的属性),因此造成了混淆。 当 2 个实例具有相同的版本(并且在某种程度上相似的位置)时,很难弄清楚事情
发生主要是由于环境配置(无论哪个路径在${PATH}中排在第一位,别名es(在Nix上),...)
它不是PyCharm特定的(意味着它更通用,也发生在它之外),但一个典型的PyCharm相关示例是不同的控制台解释器和项目解释器,导致混淆
The fix is to specify full paths (and pay attention to them ) when using tools like Python , PIP , .... Check [SO]: How to install a package for a specific Python version on Windows 10? (@CristiFati 的回答)了解更多详情
这正是这个问题存在的原因。 涉及2个Python版本:
项目解释器: /Library/Frameworks/Python.framework/Versions/3.4
具有请求模块的解释器: /opt/local /Library/Frameworks/Python.framework/Versions/3.4
好吧,假设这两条路径没有某种关联( SymLink ed),但在我有机会检查的最新OSX版本中( Catalina 、 Big Sur 、 Monterey )这不会发生(默认情况下)
根据[Python.Docs]: Modules - The Module Search Path :
当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。 这些模块名称列在sys.builtin_module_names中。 如果未找到,它会在变量sys.path给出的目录列表中搜索名为
spam.py
的文件。 sys.path从这些位置初始化:
包含输入脚本的目录(或未指定文件时的当前目录)。
PYTHONPATH (目录名称列表,语法与 shell 变量 PATH 相同)。
依赖于安装的默认值(按照惯例,包括一个
site-packages
目录,由站点模块处理)。
一个模块可能位于当前目录中,或者它的路径可能被添加到${PYTHONPATH}中。 这可能会诱使用户相信该模块实际上安装在当前的Python实例(的site-packages )中。 但是,当从不同的目录(或使用不同的${PYTHONPATH} )运行当前Python实例时,该模块会丢失,导致很多麻烦
如需修复,请检查[SO]:PyCharm 的导入方式与系统命令提示符 (Windows) 的不同(@CristiFati 的回答)
不太可能,但它可能会发生。 一个示例(与此问题无关): [SO]:PyCharm 2019.2 未显示异常回溯(@CristiFati 的回答)
要修复,请遵循上述URL中的选项之一
不太可能,但还是要提一下。 由于某些原因(例如: HW / SW故障),系统最终出现不一致的state,产生各种奇怪的行为
可能的修复:
重启PyCharm
重启机器
重新创建项目(从项目中删除.idea目录)
重置PyCharm设置:从菜单 select文件 -> 管理 IDE 设置 -> 恢复默认设置...。 检查[JetBrains]:配置 PyCharm 设置或[JetBrains.IntelliJ-Support]:更改 IDE 用于配置、插件和缓存存储的默认目录以获取更多详细信息
重新安装PyCharm
不用说,las 2 选项只能作为最后的手段,并且只能由专家尝试,因为他们可能会搞砸其他项目,甚至无法解决问题
与问题不太相关,但不久前发布了PyCharm相关调查: [SO]: Run / Debug a Django application's UnitTests from the mouse right click context menu in Z4149CE0EE30A909A1F62C583FF2 .
如果您遇到底层问题(即 pycharm 的语言服务器),请将所有内容标记为 root 并创建一个新项目。 See details: https://stackoverflow.com/a/73418320/1601580 this seems to happy to me only when I install packages as in editable mode with pip (ie pip install -e. or conda develop). 详细信息: https://stackoverflow.com/a/73418320/1601580
--WINDOWS-- 如果使用 Pycharm GUI package 安装程序可以很好地为您的虚拟环境安装软件包,但您不能在终端中执行相同操作,
这是因为您没有在终端中设置虚拟环境,而是您的终端使用不使用虚拟环境的 Power Shell
如图所示,在命令行之前应该有 (venv) 而不是 (PS)
如果您有 (PS),这意味着您的终端使用的是 Power Shell 而不是 cmd
要解决此问题,请单击向下箭头和 select 命令提示符
现在您将获得 (venv) 并只需键入 pip install #package name# 并且 package 将添加到您的虚拟环境中
在您的 pycharm 终端中运行 pip/pip3 install package_name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.