Eclipse Pydev:'错误:未找到Python标准库
我正在尝试将一个用virtualenv创建的解释器添加到PyDev中,但遇到了以下错误:
看起来在安装过程中没有找到/Lib文件夹(这个文件夹里有标准库)。
这个文件夹里包含一些文件,比如threading.py和traceback.py,是PyDev正常运行所必需的(而且它必须包含实际的源文件,而不仅仅是.pyc文件)……
需要注意的是,如果这是一个virtualenv的安装,必须选择基础安装中的/Lib文件夹(与可选的site-packages不同)……
问题是我的默认安装下没有/lib文件夹……我在创建virtualenv时使用了'no-site-packages'选项……我该怎么解决呢?谢谢!
2 个回答
为了在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/ 中查找。
我之前也遇到过这个问题。当我在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标准库”的对话框,还是可以添加解释器(但提到之后还是需要包含这个文件夹)。