Pycharm导入错误

16

编辑:问题在于Pycharm没有加载LD_LIBRARY_PATH环境变量。如果我将其添加到Pycharm的环境中,一切都可以正常工作。为什么它不会加载它?

我在导入gnuradio模块时遇到麻烦。首先,如果我只是从命令行运行Python文件,一切都可以正常工作,并且解释器也可以完全加载所有内容。只有在使用Pycharm时才存在问题。此外,GNU Radio已正确安装。

PYTHONPATH=/usr/local/lib/python2.7/site-packages

我添加了Python解释器,由于该模块可以从解释器中正确加载,所以我不确定为什么需要在pycharm中添加路径。不管怎样,我添加了gnuradio模块的位置:/usr/local/lib/python2.7/site-packages/gnuradio;然而,这是错误的。正确的加载路径是父目录:/usr/local/lib/python2.7/site-packages。我想知道为什么会这样。

更重要的是,在加载库后,我遇到了这个编译器错误:

File "/usr/local/lib/python2.7/site-packages/gnuradio/gr/runtime_swig.py", line 24, in swig_import_helper
    _mod = imp.load_module('_runtime_swig', fp, pathname, description)
ImportError: libgnuradio-pmt-3.7.2git.so.0.0.0: cannot open shared object file: No such file or directory

有关的文件位于/usr/local/lib,我已经添加了所有可能的路径来告诉它它在哪里,但是没有成功。此外,我已将/usr/lib:/usr/local/lib添加到LD_LIBRARY_PATH中,并运行了ldconfig,但仍然无法成功。这是我能想到的唯一方法。

我做错了什么?

再次说明,如果不使用PyCharm,一切都正常。这是一个关于Pycharm的问题。


1
请在遇到问题的脚本中发布您的导入。同时使用 help() 然后 modules 列出所有可用的模块。如果您的 IDE 有不同于“cmd python”的可用模块,则这就是您的问题所在。 - Aleksander Lidtke
是的,help() 模块比 IDE 中的模块多得多。我该怎么办?我将 /usr/bin/python 加载到 PyCharm 中,这是我正在使用的解释器。 - smurff
1
可能是你的IDE使用了不同的Python模块目录。你可以像这样做来查看给定模块的加载位置:在IDE和独立的Python中都执行import numpy; numpy.__file__。如果两者不同,你就会知道问题所在了。至于如何设置Pycharm模块路径,我不知道,因为我从未使用过它。 - Aleksander Lidtke
1
不是的,它们是相同的。此外,它也无法解决共享库的问题。 - smurff
3个回答

7

您是否尝试过在PyCharm上使用虚拟环境来设置解释器?如果需要一些库,它有一个包管理器,可以通过简单的图形界面安装库。

让我给您展示一个样例:

当您创建一个新项目时

enter image description here

选择右侧解释器框中的方框

您将会得到如下屏幕

enter image description here

点击加号、减号和编辑按钮旁边的第三个按钮,带有“绿色v”的Python标志,然后会出现如下对话框:

enter image description here

点击确定,然后之前的对话框将会更新如下:

enter image description here

点击安装按钮,一个带有存储库列表的对话框将会出现,选择您需要的库并安装在虚拟环境解释器上。


0

我昨天在Windows 8.1平台上遇到了类似的问题,使用的是gnuradio-3.7版本。根据https://github.com/gnuradio/gnuradio/issues/2637中提出的问题,似乎在gnuradio-3.7/lib/site-packages/gnuradio/gr目录下缺少“_runtime_swig”。针对这个问题已经为gnuradio-3.8版本提供了一个补丁。

将我的gnuradio版本升级到3.8后,缺失的“_runtime_swig”被安装在gnuradio-3.7/lib/site-packages/gnuradio/gr目录下,然后我不得不通过将“C:\Program Files\gnuradio-3.8\bin”文件夹添加到“Path”系统变量中来解决此模块的缺失依赖项(DLL),具体方法请参考ImportError: No module named _analog_swig中的答案。

这可能对其他遇到类似问题的人有所帮助。谢谢!


0
在PyCharm中,您可以更改要运行的文件的配置。

使用PyCharm编辑配置的步骤: 1. 在PyCharm项目资源管理器中右键单击文件。 2. 运行该文件。(此运行文件会出现导入错误)在此输入图片描述 3. 在PyCharm右上角有一个运行图标。箭头旁边有一个下拉框。单击箭头并选择“编辑配置...”在此输入图片描述 4. 在编辑配置窗口中,将Python解释器路径更改为已安装所需软件包的路径。在此输入图片描述 5. 如最后一个快照所示,如果您安装了不同版本的Python,则需要知道文件要运行哪个Python版本。在此输入图片描述

此外,如果您的计算机上安装了python2和python3,并且使用pip install命令,则会将软件包安装在python2目录下。因此,如果您希望软件包安装在python3目录下,则需要使用pip3 install命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接