在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 解释器(自动配置)。我选择了所有建议的包并点击 Apply 和 Ok。
但日食一直在抱怨
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会导致导入错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 11 中将 JavaFX 运行时添加到 Eclipse?
如何在 Eclipse 中将我的应用程序添加到 Tomcat?