在PyCharm中,我添加了Python环境/usr/bin/ Python然而,

from gnuradio import gr

作为未定义引用失败。但是,它在Python解释器的命令行中工作得很好。

GNURadio在Pycharm之外使用python工作得很好。一切都按照我想要的方式安装和配置。

Gnuradio位于/usr/local/lib/python2.7/site-packages/ Gnuradio

另外:

PYTHONPATH = 7 / usr / local / lib / python / site-packages: / usr / local / lib / python - site-packages gnuradio 7。


当前回答

我是PyCharm(使用2018.3.4 CE)和Python的新手,所以我死死的尝试遵循上面的每个建议来访问PIL (Pillow)包,我知道它是在系统-站点-包中。没有工作。当我在项目资源管理器窗口中注意到我的项目下的venv/pyvenv.cfg文件时,我正准备放弃过夜。我在那个文件中找到了“include-system-site-packages = false”这行,所以我把它改成了“true”。问题解决了。

其他回答

您不应该需要直接修改路径,无论是通过环境变量还是sys.path。无论您使用的是os(例如apt-get),还是virtualenv中的pip,包都将安装到路径上已经存在的位置。

In your example, GNU Radio is installed to the system Python 2's standard site-packages location, which is already in the path. Pointing PyCharm at the correct interpreter is enough; if it isn't there is something else wrong that isn't apparent. It may be that /usr/bin/python does not point to the same interpreter that GNU Radio was installed in; try pointing specifically at the python2.7 binary. Or, PyCharm used to be somewhat bad at detecting packages; File > Invalidate Caches > Invalidate and Restart would tell it to rescan.

这个答案将涵盖如何设置项目环境,在不同的场景中安装包,以及配置PyCharm。我多次参考Python打包用户指南,它是由维护官方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项目中,转到文件>设置>项目>项目解释器。如果您使用virtualenvwrapper或PyCharm来创建env,那么它应该显示在菜单中。如果不是,单击齿轮,选择添加本地,并在env. exe文件中找到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(),
)

然后将它安装到第二个项目的env中:

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

添加路径

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

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

在路径区域按下+按钮。您可以将路径放置到您希望它识别的模块。

但是我不知道路。

打开可以导入模块的python解释器。

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

通常你的文件夹结构是这样的:

foobarbaz/
  gnuradio/
    __init__.py
    other_file.py

你想在路径中添加foobarbaz。

我的版本是PyCharm专业版3.4,添加路径部分不一样。

你可以点击“首选项”——>“项目解释器”。选择右上角的工具按钮。

然后选择“更多…”——> "显示所选解释器的路径"——> "添加"。然后可以添加路径。

在Project Explorer中,您可以右键单击包含模块的文件夹,并将其设置为“Source”。

它将在Index中被解析以完成代码以及其他项。

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