如何在pycharm中导入模块

2024-04-19 05:09:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 命令行fromimportbin环境libpackagesusr
3条回答

您不应该直接修改路径,可以通过环境变量或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打包工具的同一组编写的Python Packaging User Guide


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。如果使用^{}或PyCharm创建env,那么它应该显示在菜单中。如果没有,请单击齿轮,选择Add Local,并在env中找到Python二进制文件。PyCharm将显示所选env中的所有包。

choose an env

manually locate env


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

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

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


在某些情况下,您将有多个正在开发的本地包,并且希望一个项目使用另一个包。在这种情况下,您可能认为必须将本地包添加到其他项目的路径中,但事实并非如此。您应该在development mode中安装软件包。所有这些都需要adding a ^{} file to your package,这无论如何都是以后正确分发和部署包所必需的。

第一个项目的最小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

添加路径

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

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

pycharm path tab

按路径区域中的+按钮。你可以把你想识别的模块的路径。

但我不知道路……

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

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

最常见的是,您将拥有这样的文件夹结构:

foobarbaz/
  gnuradio/
    __init__.py
    other_file.py

你想把foobarbaz加到这里的路径上。

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

相关问题 更多 >