【问题标题】:"Undefined variable from import" when importing numpy in eclipse pydev在 Eclipse pydev 中导入 numpy 时出现“来自导入的未定义变量”
【发布时间】:2012-11-30 07:13:17
【问题描述】:

每当我从 numpy 导入模块时,我在 Linux Mint Maya (Cinnamon) 上的 Eclipse 3.7.2 PyDev 2.7.1 中都会收到“来自导入的未定义变量”错误。只有在导入 numpy 时才会出现问题;其他模块工作正常。

信息:numpy 是针对英特尔 MKL 库编译的。 Python 2.7.3 [GCC 4.6.3]

示例:

import numpy as np

a = np.array([1, 2])

PyDev 编辑器中的错误消息: "来自导入的未定义变量:数组"

对于其他 numpy 子模块,我遇到了类似的错误。

代码在 Eclipse 或终端中都能正常运行。该问题仅存在于 Eclipse-PyDev 编辑器中。

【问题讨论】:

    标签: eclipse import numpy environment-variables pydev


    【解决方案1】:

    LD_LIBRARY_PATH 必须包含 MKL 库的路径。即使 LD_LIBRARY_PATH 设置正确,也必须在 Eclipse 中的 Window > Preferences > Interpreter - Python 下,在右侧的“Environment”选项卡下明确指定。添加一个名为“LD_LIBRARY_PATH”的新变量并粘贴$LD_LIBRARY_PATH 的内容。

    一旦完成,只有在使用 numpy 对象的代码中添加一行以便再次检查导入时,错误才会从代码中消失。

    【讨论】:

    • 我的问题:它在一个会话中运行良好。退出并再次启动 LiClipse 后,我收到了这个错误。第二段解决了我的问题。对我来说,第一个动作是不必要的(或者我在最初配置 LiClipse 时做了类似的事情)。
    • 似乎有不少组件可以让 PyDev(Eclipse/Liclipse) 识别 numpy。首先,你必须检查 numpy 是否按照@ElDuderino 的建议正确安装:>>> from numpy import * 然后你必须“教”pydev 为 numpy 准备环境。对我来说,这是 numpy 文件的缺失路径。
    【解决方案2】:

    MKL 库和 numpy 是一回事吗? @user1898039 的回答对我来说没有意义(我不确定我应该为该属性使用什么路径。

    我找到了解决此问题的另一种方法 - 我通过调用检查了 python 命令行以查看是否安装了 numpy:

    >>> import from numpy *

    事实并非如此。因此,尽管 numpy 出现在 PyDev 中 Python Interpreter 属性的“Forced Builtins”选项卡下,但 Python 无法从命令行使用它,我想这会导致 PyDev 内部出现问题。

    所以,我通过访问 numpy 站点并安装适用于 windows 的最新版本来解决问题。从技术上讲,我去了一些其他有 AMD64 版本的 Windows 安装程序的网站,买你知道,同样的。之后,我尝试让 PYTHONPATH 变量重新计算所有库(这可能是不必要的),但是在所有对 array() 的调用的文件中仍然显示错误。我对 numpy 包进行了自动完成以获取函数列表,从该列表中选择 array(),突然间所有错误都清除了,现在一切都很好。

    【讨论】:

      【解决方案3】:

      我能够通过将以下路径添加到 PYTHONPATH 来解决此问题(Pydev => Python 解释器 => 选择解释器 => 库):

      /usr/local/anaconda/lib/python2.7/lib/lib-dynload
      

      已安装的软件包(以及其他):

      conda==3.10.1
      numpy==1.9.2
      scipy==0.15.1
      

      【讨论】:

        【解决方案4】:

        我设法通过更新 Eclipse 中的 Phyton 解释器来修复它。成功安装 Numpy 模块后点击 Apply 按钮。

        【讨论】:

        • 这适用于哪个 OS/Eclipse 版本?没有为我工作。可能是操作系统或 Eclipse 版本的东西。我正在运行带有 Eclipse 3.6.2 的 Windows 7 32 位。 (古代,我知道...)
        • 然后退出 Eclipse 并重新启动。谢谢。
        【解决方案5】:

        我偶尔会在重新启动 Eclipse 后看到 pandas 对象的这些错误,尽管我的文件顶部当然有“import pandas as pd”。

        我发现了一个简单的解决方法:我只需删除导入语句,保存文件,将其粘贴回去并重新保存。错误消失了!

        我正在使用这个版本的 Eclipse:

        面向 PHP 开发人员的 Eclipse

        版本:Mars.2 版本 (4.5.2) 内部版本号:20160218-0600

        【讨论】:

          猜你喜欢
          • 2010-11-30
          • 1970-01-01
          • 1970-01-01
          • 2021-12-24
          • 1970-01-01
          • 2017-09-23
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          相关资源
          最近更新 更多