如何在 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

原文由 smurff 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

添加路径

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

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

pycharm 路径选项卡

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

但是我不知道路径..

打开 python 解释器,您可以在其中导入模块。

 >> import gnuradio
>> gnuradio.__file__
"path/to/gnuradio"

最常见的文件夹结构是这样的:

 foobarbaz/
  gnuradio/
    __init__.py
    other_file.py

您想将 foobarbaz 添加到此处的路径中。

原文由 Brigand 发布,翻译遵循 CC BY-SA 3.0 许可协议

您永远不需要通过环境变量或 sys.path 直接修改路径。无论您是在 virtualenv 中使用操作系统(例如 apt-get ),还是 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 打包工具的同一组编写的。


开发 Python 应用程序的正确方法是使用 virtualenv。 安装包和版本不会影响系统或其他项目。 PyCharm 有一个内置接口来创建 virtualenv 和安装包。 或者您可以从命令行创建它,然后将 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 ,然后在环境中找到 Python 二进制文件。 PyCharm 将显示所选环境中的所有包。

选择一个环境

手动定位环境


在某些情况下,例如使用 GNU Radio,没有要安装的软件包 pip ,当您安装 GNU Radio 的其余部分时,该软件包已在系统范围内安装(例如 apt-get install gnuradio ).在这种情况下,你仍然应该使用 virtualenv,但你需要让它知道这个系统包。

 $ python2 -m virtualenv --system-site-packages env

不幸的是它看起来有点乱,因为所有系统包现在都会出现在你的环境中,但它们只是链接,你仍然可以安全地安装或升级包而不影响系统。


在某些情况下,您将有多个正在开发的本地包,并且希望一个项目使用另一个包。在这种情况下,您可能认为必须将本地包添加到其他项目的路径中,但事实并非如此。你应该在 开发模式下 安装你的包。所有这一切都需要 setup.py 文件添加到您的包 中,无论如何以后都需要正确分发和部署该包。

最小 setup.py 为您的第一个项目:

 from setuptools import setup, find_packages

setup(
    name='mypackage',
    version='0.1',
    packages=find_packages(),
)

然后将它安装在你的第二个项目的环境中:

 $ pip install -e /path/to/first/project

原文由 davidism 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题