ChatGPT解决这个技术问题 Extra ChatGPT

如何在 PyCharm 中使用已安装的软件包?

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。
对我来说还有另一个问题。如果您尝试添加一个过去有 .idea 文件夹的文件夹,但您当前的项目有它自己的 .idea 文件夹,那么您的 pycharm 可能会由于某种原因感到困惑——即使您有正确的 python/conda env。对我来说,删除另一个项目的 .idea 文件夹解决了它可以找到明显正确安装的 pkgs 的困惑。然后它能够在 pycharm 编辑器 GUI 中找到它们,snf 停止以红色隐藏它们。

S
Stevoisiak

添加路径

进入文件→设置→项目设置→项目解释器。

然后按配置解释器,并导航到“路径”选项卡。

https://i.imgur.com/Q5pcWDX.jpg

按路径区域中的 + 按钮。您可以将路径放入您希望它识别的模块。

但是我不知道路径..

打开 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->单击 + 符号添加包
x
xjcl

您永远不需要通过环境变量或 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 将显示所选环境中的所有包。

https://i.stack.imgur.com/gE7k8.png

https://i.stack.imgur.com/dLVhx.png

在某些情况下,例如使用 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

m
michaelsnowden

对我来说,这只是将目录标记为源根目录的问题。


它对我有用,只需右键单击目录,然后将目录标记为:源根。谢谢@michaelsnowden
为我工作;奇怪的是,这就像我的第 15 个 PyCharm 项目,也是我第一次不得不这样做。
我的本地模块可以在运行时找到,但用红色曲线显示,就好像它们看不到一样。 “将目录标记为源根目录”去掉了波浪线,但不确定这是正确的方法。
如果没有指定,你知道 pycharm 的默认源根是什么吗?
@KimMiller 在您之后 3 年我也遇到了完全相同的情况。只有将本地包/模块标记为“源根”时,PyCharm 才能找到它们。
D
Dorin

在 PyCharm 2017 中添加路径

文件 -> 设置(或 Ctrl+Alt+S)-> 项目 -> 项目解释器

https://i.stack.imgur.com/zJtDv.png

https://i.stack.imgur.com/h7Kxg.png

https://i.stack.imgur.com/oRnsx.png


最后正常回答,只是想知道在哪里粘贴默认的 pip size_packages 文件夹。
我做了同样的事情来添加.jar文件的路径,所以我可以使用一些java库。但是,我不知道如何指定 jar 文件以及它应该由我的脚本使用。你能帮我进一步吗?
c
chenlian

我的版本是 PyCharm Professional edition 3.4,Adding a Path 部分不一样。

您可以转到“首选项”->“项目解释器”。选择右上角的工具按钮。

然后选择“更多...”->“显示所选解释器的路径”->“添加”。然后你可以添加一个路径。


至少对我来说,当我这样做并单击“确定”时,我回去,发现它仍然不起作用。然后我回到与当前解释器关联的路径列表,发现我刚刚添加的路径已经不见了。
添加路径后,您必须单击刷新。关闭窗口。现在应用按钮未激活。切换设置并单击应用(如果它处于活动状态)
D
Daniel Braun

不要更改解释器路径。

改为更改项目结构:

文件 -> 设置 -> 项目 -> 项目结构 -> 添加内容根


谢谢,如果项目中的导入看起来损坏,效果很好。
G
GingerBreadMane

在 PyCharm 2020.1 CE 和 Professional 中,您可以通过执行以下操作向项目的 Python 解释器添加路径:

1)点击项目右下角的解释器,选择“解释器设置”

https://i.stack.imgur.com/148bW.jpg

2)单击解释器名称右侧的设置按钮,然后选择“全部显示”:

https://i.stack.imgur.com/sQWnz.jpg

3) 确保选择了项目的解释器,然后单击底部工具栏中的第五个按钮,“显示所选解释器的路径”:

https://i.stack.imgur.com/PiEm3.jpg

4) 单击底部工具栏中的“+”按钮,并添加包含模块的文件夹的路径:

https://i.stack.imgur.com/TtqZh.jpg


W
Wesley

对于 PyCharm 社区版 2016.3.2,它是:

“项目解释器”->右上角设置图标->“更多”。

然后在右侧应该有一个包图标。当悬停在它上面时,它应该说“显示选定解释器的路径”。点击它。

然后单击“添加”按钮或按“alt+insert”添加新路径。


r
rundekugel

作为快速的脏修复,这对我有用:在有问题的导入之前添加这 2 行:

import sys
sys.path.append('C:\\Python27\\Lib\site-packages')

佚名

在项目资源管理器中,您可以右键单击包含模块的文件夹并将其设置为“源”。

它将在索引中被解析以进行代码完成以及其他项目。


我的本地模块可以在运行时找到,但用红色曲线显示,就好像它们看不到一样。 “将目录标记为源根目录”去掉了波浪线,但不确定这是正确的方法。
u
user3397407

我是 PyCharm(使用 2018.3.4 CE)和 Python 的新手,所以我死记硬背地尝试遵循上述每个建议来访问我知道在 system-site-packages 中的 PIL(Pillow)包。没有工作。我正要放弃一夜,突然在 Project Explorer 窗口中注意到我的项目下的 venv/pyvenv.cfg 文件。我在该文件中找到了“include-system-site-packages = false”行,因此将其更改为“true”。问题解决了。


值得注意的是,有经验的虚拟环境用户通常不希望其他位置的包泄漏到他们的隔离环境中,因此默认设置排除系统级包。当同一个包安装在多个位置时,会导致不可预知的行为,尤其是当它们是不同的版本时。
f
flycoolman

在我的 PyCharm 2019.3 中,选择项目,然后选择 File ---> Settings,然后 Project: YourProjectName,在 'Project Interpreter' 中,点击解释器或设置,---> Show all... ---> 选择当前解释器--->显示所选解释器的路径--->然后单击“添加”以添加您的库,在我的情况下,它是一个轮包


C
Charlie Parker

对我来说还有另一个问题。如果您尝试添加一个过去有 .idea 文件夹的文件夹,但您当前的项目有它自己的 .idea 文件夹,那么您的 pycharm 可能会由于某种原因感到困惑——即使您有正确的 python/conda env。对我来说,删除另一个项目的 .idea 文件夹解决了它可以找到明显正确安装的 pkgs 的困惑。然后它能够在 pycharm 编辑器 GUI 中找到它们,snf 停止以红色隐藏它们。


l
loki

下载 anaconda https://anaconda.org/

一旦完成安装anaconda ...

进入设置 -> 项目设置 -> 项目解释器。

然后导航到“路径”选项卡并搜索 /anaconda/bin/python

点击申请

https://i.stack.imgur.com/19upA.png