在eclipse中将python模块添加到pydev会导致导入错误?

Posted

技术标签:

【中文标题】在eclipse中将python模块添加到pydev会导致导入错误?【英文标题】:Adding python modules to pydev in eclipse results in import error? 【发布时间】: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 窗口中? 【参考方案1】:

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

【讨论】:

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

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

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

你应该很高兴。 =)

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

【讨论】:

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

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

最后

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

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

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】:
    打开 Eclipse 窗口 -> 首选项并转到 PyDev -> 解释器。 点击“检查解释器是否与环境同步”

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

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

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

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

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

【讨论】:

以上是关于在eclipse中将python模块添加到pydev会导致导入错误?的主要内容,如果未能解决你的问题,请参考以下文章

python+Eclipse+pydev环境搭建

如何在 Java 11 中将 JavaFX 运行时添加到 Eclipse?

如何在 Eclipse 中将我的应用程序添加到 Tomcat?

无法在 Eclipse 中将项目添加到 Tomcat 服务器

无法在 Eclipse 中将包添加到 src

在 Eclipse 中将 .so lib 添加到 .pro 文件中。 C++/Eclipse/Linux