【问题标题】:Adding python modules to pydev in eclipse results in import error?在eclipse中将python模块添加到pydev会导致导入错误?
【发布时间】:2011-08-29 13:12:45
【问题描述】:

我无法让 Eclipse 上的 PyDev 识别已安装的模块。这是我的详细方法。机器是 Mac(雪豹)。

在终端中输入命令

python --version

显示Python 2.6.6

import unidecode

from unidecode import unidecode

两者都很好!

我在 Eclipse 中安装了 PyDev 并配置了 python 解释器(自动配置)。我选择了所有建议的包并点击 ApplyOk

但日食一直在抱怨

Traceback (most recent call last):
  File "/Users/me/Documents/workspace/myproject/python/pythontest.py", line 12, in <module>
    from unidecode import unidecode
ImportError: No module named unidecode

python文件长这样

#!/usr/bin/env python
# encoding: utf-8


import sys
import os
from unidecode import unidecode


def main():
    print unidecode(u"Ågot Aakra")

if __name__ == '__main__':
    main()

当我删除脚本中的第一行时

#!/usr/bin/env python

这会导致同样的错误。

有人知道问题出在哪里吗?

【问题讨论】:

  • @cerberos:据我所知没有。 :-)
  • 它非常适合我,无需任何特殊设置
  • 如果你有多个版本的python,请确保在pydev中你指的是同一个版本
  • @Abdul:在菜单选项 Python Interpreters 的下部框中,导入的模块似乎也是 python 2.6。在每一行的路径中都有 python 2.6。也许我应该提到它是 Mac(雪豹)
  • unidecode模块存放在哪个文件夹?该文件夹是否显示在 Eclipse 的 System PYTHONPATH 窗口中?

标签: python eclipse configuration import pydev


【解决方案1】:

尝试首选项 > pydev > 解释器 - python 并删除和重新添加 python 解释器(确保在删除它之前知道它的路径),当你重新添加它时,勾选所有框。

【讨论】:

  • 我已经这样做了。它没有帮助。我自己找到了解决方案,但感谢您的努力。 =)
【解决方案2】:

这是我的问题的解决方案:

  1. 找出对应python版本的文件夹../site-packages/的路径。 (对我来说,在我的 Mac 上使用 Snoe Leopard 时,python 2.6 是 /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/。)
  2. 打开 Eclipse 首选项并转到 PyDev -> 解释器 - Python
  3. 在下框的左侧,单击新建文件夹
  4. 添加导航到您对应python版本的../site-packages/
  5. 点击打开
  6. 点击应用
  7. 点击确定

你应该很高兴。 =)

感谢@all particionts,他们在 cmets 中为正确的方向提供了提示。

【讨论】:

  • 别忘了检查里面有没有东西 :) scipy 没有与默认的 python 安装一起安装
  • 仍然有效。但是我还需要重启 Eclipse。
【解决方案3】:

我今天遇到了同样的问题。我正在使用 pydev 并且有一个包含许多子包的工作项目。在创建了一个新模块后,我突然无法在不同的包中使用这个模块。令人费解的功能是我可以在同一个子包中使用另一个模块...

最后

  1. eclipse 重启
  2. 删除/添加 python 解释器和所有站点包
  3. 恼怒的挠头

我使用以下脚本删除了所有已编译的类:

import os

def clean_folder(folder):
  for file in os.listdir(folder):
    path = os.path.join(folder,file)
    if os.path.isdir(path):
        clean_folder(path)

    if '.pyc' == file[-4:]:
        print 'deleting: ' + str(path)
        os.remove(path)

if __name__ == '__main__':
  folder = 'YOUR_PROJECT_SRC_PATH'
  clean_folder(folder)

我终于可以做“实际”工作了 :) 希望它可以帮助某人...

【讨论】:

    【解决方案4】:

    假设你的永恒模块在 / 中。

    启动 Eclipse 并转到项目选项。选择“PyDev-PYTHONPATH” 在右侧,您将看到一个选项卡式窗口。在那里选择外部库。 单击添加源文件夹并从上述路径中选择您的库。

    【讨论】:

      【解决方案5】:

      @Aufwind 你上面的回答对我有帮助,但没有解决。

      • 找到文件夹的路径 ../site-packages/ ....
      • 打开 Eclipse 首选项并转到 PyDev -> Interpreter - Python。
      • 在下框的左侧,单击新建文件夹。 ---> 在这里我偏离了你的指示。我为未被识别的模块添加了鸡蛋。添加 site-packages 文件夹并没有解决它。
      • 点击打开。
      • 点击应用。
      • 点击确定。

      然后我就可以走了。 =)

      【讨论】:

        【解决方案6】:

        当 Eclipse 对于系统或项目中存在的软件包“丢失”时,从项目的上下文菜单中选择“属性”菜单项,然后在树视图中选择“PyDev - PYTHONPATH”项对话框的左侧,然后是“强制恢复内部信息”按钮。看起来,PyDev 保留了信息的计算缓存,当由于任何原因缓存变得不连贯时,您可以强制 PyDev 重新计算。

        【讨论】:

          【解决方案7】:

          您可以简单地将模块添加到 pydev 路径。转到项目属性(从上下文菜单中)-> PyDev -> PYTHONPATH -> 外部库。根据模块是在源文件夹还是 zip/egg 文件中,选择添加源文件夹或添加 zip/jar/egg。导航到site-packages目录并指向相关文件或文件夹(我的是:/usr/local/lib/pythonx.x/site-packages)

          【讨论】:

          • 谢谢!尝试了这么多解决方案,终于成功了,重启eclipse后(在ubuntu虚拟机中使用python3.5)
          【解决方案8】:

          在我的情况下,我在编译之前没有收到此错误,但是当我编译时收到错误 ImportError: No module named myant.core。我尝试从 PyDev-PYTHONPATH 添加文件,但又遇到了同样的错误。然后我意识到我实际上不必将路径完全添加到我的 .py 文件所在的文件夹中。事实上,我必须添加 myant.core 所在的文件夹。这样做之后,当我再次重新编译我的项目时,我重新启动,问题得到解决。我会分享我拥有的:

          Python 2.7 Eclipse kepler 4.3、PyDev 3.9.2 和我的 ubuntu 14.04

          .py 文件位置:/${PROJECT_DIR_NAME}/src/myant/core,因此我添加了/${PROJECT_DIR_NAME}/src

          【讨论】:

            【解决方案9】:
            1. 打开 Eclipse 窗口 -> 首选项并转到 PyDev -> 解释器。
            2. 点击“检查解释器是否与环境同步”

            这是为我做的。不需要重启 Eclipse。

            【讨论】:

              【解决方案10】:

              我通过转到项目属性 -> PyDev Django 解决了这个问题 并设置 Django 设置模块。

              【讨论】:

                【解决方案11】:

                对于 Oxygen 2(我认为它也适用于早期版本)...

                1. 右键单击项目文件夹并选择“属性”
                2. 选择“PyDev - 解释器/语法”
                3. 点击“点击此处配置未列出的解释器”
                4. 从已配置解释器的顶部列表中选择任何现有解释器
                5. 应该会出现一个“需要选择”对话框,您必须在其中选择一个或多个解释器来恢复。勾选所有适用项
                6. 单击“确定”,PyDev 将重新扫描,我假设重建站点包的一些内部视图
                7. 点击“应用并关闭”关闭所有对话框

                要使导入错误标记在我的代码编辑器中消失,我需要在有问题的导入后键入一个空格,然后保存更改。导入错误随即消失,因为 PyDev 现在可以找到有问题的导入模块。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-09-30
                  • 2015-04-09
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-01-29
                  • 2021-03-19
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多