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

时间:2011-05-20 10:12:39

标签: python eclipse configuration import pydev

我在使用eclipse上的PyDev识别已经安装的模块时遇到了问题。这是我的详细方法。这台机器是Mac(Snow Leopard)。

在终止命令

python --version

显示 Python 2.6.6

import unidecode

from unidecode import unidecode

工作得很好!

我在Eclipse中安装了PyDev并开始配置python解释器(Auto Config)。我选择了所有提议的软件包,然后点击 Apply Ok

但是eclipse不断抱怨

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

导致同样的错误。

有人知道问题所在吗?

11 个答案:

答案 0 :(得分:27)

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

  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 - &gt; Interpreter - Python
  3. 在下方框的左侧,点击新文件夹
  4. 将导航添加到相应python版本的../site-packages/
  5. 点击打开
  6. 点击应用
  7. 点击确定
  8. 你应该好好去。 =)

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

答案 1 :(得分:2)

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

最后

  1. eclipse restart
  2. 删除/添加python interpreter和所有site-packages
  3. 恼火的头疼
  4. 我使用以下脚本删除了所有已编译的类:

    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)
    

    最后我可以'实际'工作:) 希望它对某人有帮助......

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

在我的情况下,我在编译之前没有收到此错误,但是当我编译时,我收到错误 ImportError:没有名为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

答案 5 :(得分:0)

尝试偏好&gt; pydev&gt;解释器 - python并删除并重新添加python解释器(确保在删除它之前知道它的路径),当你重新添加它时勾选所有方框。

答案 6 :(得分:0)

@Aufwind上面你的答案有所帮助,但没有为我解决。

  • 找到文件夹的路径../site-packages/ ....
  • 打开eclipse首选项并转到PyDev - &gt;口译员 - Python。
  • 在下方框的左侧,单击“新建文件夹”。 ---&GT;我离开了你的指示。我为未被识别的模块添加了鸡蛋。添加site-packages文件夹没有修复它。
  • 点击打开。
  • 点击申请。
  • 点击确定。

然后我很高兴。 =)

答案 7 :(得分:0)

  1. 打开日食窗口 - &gt;首选项并转到PyDev - &gt;解释器。
  2. 点击&#39;检查口译员是否与环境&#39;
  3. 同步

    这对我有用。不需要重启Eclipse。

答案 8 :(得分:0)

我通过转到项目属性修复了这个问题 - &gt; PyDev Django 并设置Django设置模块。enter image description here

答案 9 :(得分:0)

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

  1. 右键单击项目文件夹,然后选择“属性”
  2. 选择“PyDev - Interpreter / Grammar”
  3. 点击“点击此处配置未列出的口译员”
  4. 从配置的口译员的顶部列表中选择任何现有的口译员
  5. 应显示“需要选择”对话框,您必须选择一个或多个要还原的解释器。检查所有适用的内容
  6. 点击“确定”,PyDev将重新扫描,我认为,重建网站包的一些内部视图
  7. 点击“应用并关闭”以关闭所有对话框
  8. 要使导入错误标记在我的代码编辑器中消失,我需要在违规导入后键入一个空格然后保存更改。然后导入错误消失,因为PyDev现在可以找到有问题的导入模块。

答案 10 :(得分:-1)

假设你的永恒模块在/.

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