在Eclipse的PyDev中添加Python模块导致导入错误?
我在用Eclipse的PyDev时遇到了一个问题,它无法识别我已经安装的模块。下面是我详细的操作步骤。我的电脑是Mac(Snow Leopard)。
在终端中输入的命令
python --version
显示的是Python 2.6.6。
import unidecode
而且
from unidecode import unidecode
都运行得很好!
我在Eclipse中安装了PyDev,然后配置了Python解释器(自动配置)。我选择了所有推荐的包,然后点击了应用和确定。
但是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 个回答
2
你可以很简单地把这个模块添加到pydev的路径中。首先,右键点击你的项目,选择项目属性,然后找到PyDev选项,再点击PYTHONPATH,接着选择外部库。根据这个模块是放在源文件夹里还是在zip/egg文件中,选择“添加源文件夹”或者“添加zip/jar/egg”。然后找到site-packages目录,指向相关的文件或文件夹(我的路径是:/usr/local/lib/pythonx.x/site-packages)。
2
我今天遇到了同样的问题。我在用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)
最后我终于可以开始“真正的”工作了 :) 希望这能帮到某些人……
28
这是我解决问题的方法:
- 首先,找到你对应的 Python 版本的文件夹路径
../site-packages/
。(对我来说,在我的 Mac 上,使用 Snow Leopard 的 Python 2.6 的路径是/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
。) - 打开 Eclipse 的设置,找到 PyDev -> 解释器 - Python。
- 在下方框的左侧,点击 新建文件夹。
- 然后添加你找到的对应 Python 版本的
../site-packages/
路径。 - 点击 打开。
- 点击 应用。
- 最后点击 确定。
这样就可以了。=)
感谢所有在评论中提供正确方向提示的朋友们。