您不应该直接通过环境变量或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打包工具的同一组织编写的。
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创建env,那么它应该显示在菜单中。如果没有,请单击齿轮,选择Add Local
,然后在env中找到Python二进制文件。 PyCharm将显示所选env中的所有包。


在某些情况下,如用GNU收音机,也没有包安装与pip
,包安装系统范围内,当你安装GNU的其余部分收音机(例如apt-get install gnuradio
)。在这种情况下,你仍然应该使用virtualenv,但是你需要知道这个系统包。
$ python2 -m virtualenv --system-site-packages env
不幸的是,它看起来有点乱,因为所有的系统包现在将出现在您的ENV,但它们只是链接,您仍然可以安全地安装或升级软件包,而不影响系统。
在某些情况下,您将有多个您正在开发的本地软件包,并希望一个项目使用另一个软件包。在这种情况下,您可能认为必须将本地程序包添加到其他项目的路径中,但情况并非如此。您应该在development mode中安装包装。所有这些都需要adding a setup.py
file to your package,无论如何这都是必要的,以便稍后正确分发和部署软件包。
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
然后在你的第二个项目的ENV它安装:
$ pip install -e /path/to/first/project
好了,你们是怎么安装gnuradio? – LotusUNSW