Eclipse Pydev:'错误:未找到Python标准库

25 投票
2 回答
7222 浏览
提问于 2025-04-16 21:02

我正在尝试将一个用virtualenv创建的解释器添加到PyDev中,但遇到了以下错误:

看起来在安装过程中没有找到/Lib文件夹(这个文件夹里有标准库)。

这个文件夹里包含一些文件,比如threading.py和traceback.py,是PyDev正常运行所必需的(而且它必须包含实际的源文件,而不仅仅是.pyc文件)……

需要注意的是,如果这是一个virtualenv的安装,必须选择基础安装中的/Lib文件夹(与可选的site-packages不同)……

问题是我的默认安装下没有/lib文件夹……我在创建virtualenv时使用了'no-site-packages'选项……我该怎么解决呢?谢谢!

2 个回答

0

为了在pydev中跳过这个信息,你可以手动创建一些符号链接,链接到那些虚拟环境没有链接的标准库。

举个例子:

ln -s /usr/lib/python3.3/threading.py /home/path/to/virtual/myenv/lib/python3.3/threading.py
ln -s /usr/lib/python3.3/traceback.py /home/path/to/virtual/myenv/lib/python3.3/traceback.py

在虚拟环境中,有很多标准库是没有链接的。可能你需要手动添加你需要的库。

你可以查看一下 /usr/lib/python3.3,然后和 /home/path/to/virtual/myenv/lib/python3.3 进行对比。

比如,你可以把 /usr/lib/python3.3/concurrent/ 加入到你的pydev路径中。

如果你按照Bhaduri先生的建议,把 /usr/lib/python2.7(或者 /usr/lib/python3.3)添加进去,你的虚拟环境可能会出现问题,因为你的包可能会去看 /usr/lib/python2.7 下的 site-packages 目录,而这正是你不想要的。

你想要隔离你的环境。你希望你的包只在 /home/path/to/virtual/myenv/lib/python3.3/site-packages/ 中查找。

23

我之前也遇到过这个问题。当我在PyDev中添加一个用virtualenv创建的解释器时,它会询问需要添加到系统pythonpath的文件夹。我需要选择以下几个文件夹:
/usr/lib/python2.7
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/plat-linux2
你可以参考截图,里面的temp就是我的virtualenv。

这里输入图片描述

虽然我添加了系统的Python目录,但PyDev并没有识别全局的site packages,所以你还是会得到“没有site-packages”的效果。我猜在Windows上也需要做类似的操作,也就是在“选择需要的”对话框中选择所有文件夹,包括C:\Pythonx.x这个文件夹。

编辑:我刚刚在Eclipse Indigo上用PyDev 2.3试了一下(Arch Linux和virtualenv 1.7),似乎plat-linux2这个文件夹不需要选择(不确定lib-tk是否需要,但/usr/lib/python2.7是必须的)。感谢fijiaaron的提醒。

编辑 2:Pydev 2.5(可能2.6也一样,根据文档)仍然需要/Lib文件夹才能正常工作,不过现在它允许你忽略“找不到Python标准库”的对话框,还是可以添加解释器(但提到之后还是需要包含这个文件夹)。

撰写回答