在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
进入文件→设置→项目设置→项目解释器。
然后按configure interpreter,导航到“Paths”选项卡。
按“路径”区域中的+按钮。您可以将路径放到您希望识别的模块中。
打开python解释器,您可以在其中导入模块。
>> import gnuradio
>> gnuradio.__file__
"path/to/gnuradio"
最常见的是你会有这样的文件夹结构:
foobarbaz/
gnuradio/
__init__.py
other_file.py
你想在这里添加foobarbaz到路径。
我是PyCharm(使用2018.3.4 CE)和Python的新手,所以我狠狠地试着按照上面的每一条建议来访问PIL(Pillow)包,我知道这是在system-site-packages中。没有用。当我碰巧在Project Explorer窗口中注意到我的项目下的venv / pyvenv.cfg文件时,我正要放弃当晚。我在该文件中找到了“include-system-site-packages = false”这一行,因此我将其更改为“true”。问题解决了。
下载anaconda https://anaconda.org/
一旦完成安装anaconda ...
进入设置 - >项目设置 - >项目翻译。
然后导航到“路径”选项卡并搜索/ anaconda / bin / python
点击申请
您永远不需要通过环境变量或sys.path
直接修改路径。无论您是在virtualenv中使用os(例如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 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
对我来说,只需将目录标记为源根目录即可。
我的版本是PyCharm Professional 3.4版,而添加路径部分则不同。
您可以转到“首选项” - >“项目翻译”。选择右上角的工具按钮。
然后选择“更多...” - >“显示所选解释器的路径” - >“添加”。然后你可以添加一个路径。
对于PyCharm Community Edition 2016.3.2,它是:
“项目翻译” - >右上角设置图标 - >“更多”。
然后在右侧应该有一个包图标。将鼠标悬停在它上面时,应显示“显示所选解释器的路径”。点击它。
然后单击“添加”按钮或按“alt + insert”添加新路径。
在Project Explorer中,您可以右键单击包含模块的文件夹,并将其设置为“Source”。
它将在索引中解析以完成代码以及其他项目。
不要改变翻译路径!
改为改变项目结构:
文件 - >设置 - >项目 - >项目结构 - >添加内容根目录
作为快速修复,这对我有用:在有问题的导入之前添加这2行:
import sys
sys.path.append('C:\\Python27\\Lib\site-packages')