如何在 PyCharm 中使用已安装的软件包?
Posted
技术标签:
【中文标题】如何在 PyCharm 中使用已安装的软件包?【英文标题】:How do I use installed packages in PyCharm? 【发布时间】:2021-12-13 05:11:02 【问题描述】:在 PyCharm 中,我添加了 Python 环境 /usr/bin/python
。然而,
from gnuradio import gr
作为未定义的引用失败。但是,它在命令行的 Python 解释器中运行良好。
GNURadio 在 Pycharm 之外的 python 上工作得很好。一切都按照我想要的方式安装和配置。
Gnuradio 位于/usr/local/lib/python2.7/site-packages/gnuradio
还有:
PYTHONPATH=/usr/local/lib/python2.7/site-packages:/usr/local/lib/python2.7/site-packages/gnuradio
【问题讨论】:
好的,那么您是如何安装 gnuradio 的? 您可以从 PyCharm 中的可用存储库安装 gnuradio。 PyCharm -> 首选项(Windows 上的设置)-> 项目 -> 项目解释器 -> 单击“+”登录包部分并搜索所需的包。如果您需要的包在已添加的存储库中不可用,您可能必须添加存储库。 HTH。 【参考方案1】:添加路径
进入文件→设置→项目设置→项目解释器。
然后按配置解释器,并导航到“路径”选项卡。
按路径区域中的 + 按钮。您可以将路径放入您希望它识别的模块。
但我不知道路径..
打开可以导入模块的python解释器。
>> import gnuradio
>> gnuradio.__file__
"path/to/gnuradio"
最常见的文件夹结构如下:
foobarbaz/
gnuradio/
__init__.py
other_file.py
您想在此处将 foobarbaz 添加到路径中。
【讨论】:
@FakeRainBrigand 在 PyCharm4 中看不到“路径”选项卡。 在 PyCharm 4 CE 中:转到“项目解释器”。单击解释器路径右侧的齿轮。它将弹出一个简短的下拉菜单,您应该从中选择“更多...”。在新弹出窗口的右侧,将有一个带有“显示所选解释器的路径”的鼠标悬停文本的图标。单击该按钮。这个新的“解释器路径”弹出窗口是您可以添加路径的地方。 @AnkeshAnand 不错的解决方案。我发现我的解释器被设置为不包含 numpy 的虚拟环境。我只是将它设置回标准解释器,这解决了我的问题。 当我选择3.5.3时,包区域的添加/删除/向上按钮是灰色的。 Mac 用户,按左上角的 PyCharm,然后按 Preferences...->Project->Project Interpreter->点击+
符号添加包【参考方案2】:
我的版本是PyCharm专业版3.4,添加路径部分不同。
您可以转到“首选项”->“项目解释器”。选择右上角的工具按钮。
然后选择“更多...”-->“显示所选解释器的路径”-->“添加”。然后就可以添加路径了。
【讨论】:
至少对我来说,当我这样做并单击“确定”时,我回去,发现它仍然不起作用。然后我回到与当前解释器关联的路径列表,发现我刚刚添加的路径已经没有了。 添加路径后必须点击刷新。关闭窗口。现在应用按钮未激活。切换设置,如果它处于活动状态,请单击应用【参考方案3】:对我来说,只是将目录标记为源根目录。
【讨论】:
它对我有用,只需右键单击目录,然后将目录标记为:源根目录。谢谢@michaelsnowden 为我工作;奇怪的是,这就像我的第 15 个 PyCharm 项目,也是我第一次这样做。 我的本地模块可以在运行时找到,但显示为红色曲线,好像它们看不到一样。 “将目录标记为源根目录”去掉了波浪线,但不确定这是正确的方法。 你知道pycharm的默认源码根是什么吗,如果没有指定? @KimMiller 在你之后 3 年我遇到了完全相同的情况。 PyCharm 只有在将它们标记为“源根”时才能找到本地包/模块。【参考方案4】:您永远不需要直接修改路径,无论是通过环境变量还是sys.path
。无论您使用操作系统(例如apt-get
)还是在 virtualenv 中使用pip
,软件包都将安装到路径上已经存在的位置。
在您的示例中,GNU Radio 安装到系统 Python 2 的标准 site-packages
位置,该位置已经在路径中。将 PyCharm 指向正确的解释器就足够了;如果不是,还有其他不明显的错误。 /usr/bin/python
可能没有指向安装 GNU Radio 的同一个解释器;尝试专门指向python2.7
二进制文件。或者,PyCharm 过去在检测包方面有些欠佳; File > Invalidate Caches > Invalidate and Restart
会告诉它重新扫描。
这个答案将涵盖您应该如何设置项目环境、在不同场景中安装包以及配置 PyCharm。我多次提到Python Packaging User Guide,由维护官方 Python 打包工具的同一组编写。
The correct way to develop a Python application is with a virtualenv. 安装包和版本不影响系统或其他项目。 PyCharm has a built-in interface to create a virtualenv and install packages. 或者您可以从命令行创建它,然后将 PyCharm 指向它。
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
在您的 PyCharm 项目中,转到 File > Settings > Project > Project Interpreter
。如果您使用virtualenvwrapper
或 PyCharm 创建环境,那么它应该会显示在菜单中。如果没有,请单击齿轮,选择 Add Local
,然后在 env 中找到 Python 二进制文件。 PyCharm 将显示所选环境中的所有包。
在某些情况下,例如使用 GNU Radio,pip
没有要安装的软件包,当您安装 GNU Radio 的其余部分(例如 apt-get install gnuradio
)时,该软件包已在系统范围内安装。在这种情况下,您仍然应该使用 virtualenv,但您需要让它知道这个系统包。
$ python2 -m virtualenv --system-site-packages env
不幸的是它看起来有点乱,因为所有系统包现在都会出现在你的环境中,但它们只是链接,你仍然可以安全地安装或升级包而不影响系统。
在某些情况下,您将拥有多个正在开发的本地包,并且希望一个项目使用另一个包。在这种情况下,您可能认为必须将本地包添加到其他项目的路径中,但事实并非如此。你应该在development mode 中安装你的包。所有这些都需要adding a setup.py
file to your package,无论如何在以后正确分发和部署包时都需要它。
第一个项目的最小setup.py
:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
然后将它安装在你的第二个项目的环境中:
$ pip install -e /path/to/first/project
【讨论】:
【参考方案5】:在项目资源管理器中,您可以右键单击包含模块的文件夹并将其设置为“源”。
它将在索引中被解析为代码完成以及其他项目。
【讨论】:
我的本地模块可以在运行时找到,但显示为红色曲线,好像它们看不到一样。 “将目录标记为源根目录”去掉了波浪线,但不确定这是正确的方法。【参考方案6】:对于 PyCharm 社区版 2016.3.2,它是:
“项目解释器”-> 右上角设置图标->“更多”。
然后在右侧应该有一个包图标。当悬停在它上面时,它应该说“显示选定解释器的路径”。点击它。
然后单击“添加”按钮或按“alt+insert”添加新路径。
【讨论】:
【参考方案7】:下载 anaconda https://anaconda.org/
安装 anaconda 后...
进入设置 -> 项目设置 -> 项目解释器。
然后导航到“路径”选项卡并搜索 /anaconda/bin/python
点击申请
【讨论】:
【参考方案8】:在 PyCharm 2017 中添加路径
文件 -> 设置(或 Ctrl+Alt+S)-> 项目 -> 项目解释器
全部显示
选择右侧底部图标
点击加号按钮为您的模块添加新路径
【讨论】:
终于正常回答了,就是想知道把默认的pip size_packages文件夹粘贴到哪里。 我已经做了同样的事情来添加一个 .jar 文件的路径,所以我可以使用一些 java 库。但是,我不知道如何指定 jar 文件以及它应该由我的脚本使用。你能帮我进一步吗?【参考方案9】:作为快速 n 脏修复,这对我有用: 在有问题的导入之前添加这 2 行:
import sys
sys.path.append('C:\\Python27\\Lib\site-packages')
【讨论】:
【参考方案10】:我是 PyCharm(使用 2018.3.4 CE)和 Python 的新手,所以我死记硬背地尝试遵循上述每个建议来访问我知道在 system-site-packages 中的 PIL(Pillow)包。没有工作。我正要放弃一夜,突然在 Project Explorer 窗口中注意到我的项目下的 venv/pyvenv.cfg 文件。我在该文件中找到了“include-system-site-packages = false”行,因此将其更改为“true”。问题解决了。
【讨论】:
需要注意,但有经验的虚拟环境用户通常不希望其他位置的包泄漏到他们的隔离环境中,因此默认设置排除系统级包。当同一个包安装在多个位置时,会导致不可预知的行为,尤其是当它们是不同的版本时。【参考方案11】:不要更改解释器路径。
改为更改项目结构:
文件->设置->项目->项目结构->添加内容根
【讨论】:
谢谢,如果项目中的导入看起来损坏,效果很好。【参考方案12】:在 PyCharm 2020.1 CE 和 Professional 中,您可以通过执行以下操作向项目的 Python 解释器添加路径:
1) 点击项目右下角的解释器,选择“解释器设置”
2) 点击解释器名称右侧的设置按钮,选择“全部显示”:
3) 确保选择了项目的解释器,然后单击底部工具栏中的第五个按钮“显示所选解释器的路径”:
4) 单击底部工具栏中的“+”按钮并添加包含您的模块的文件夹的路径:
【讨论】:
【参考方案13】:在我的 PyCharm 2019.3 中,选择项目,然后选择 File ---> Settings,然后 Project: YourProjectName,在 'Project Interpreter' 中,点击解释器或设置,---> Show all... --->选择当前解释器 ---> 显示所选解释器的路径 ---> 然后单击“添加”以添加您的库,在我的情况下,它是一个***包
【讨论】:
以上是关于如何在 PyCharm 中使用已安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章