如何在Eclipse中使用pip通过virtualenv设置PyDev的Python解释器

1 投票
1 回答
3130 浏览
提问于 2025-04-17 09:21

我想用pip来安装新的软件包,他们建议我在虚拟环境中安装pip。我照做了,安装了一些软件包,使用起来没问题。

但是我在用PyDev设置简单的谷歌应用引擎的helloworld应用时遇到了问题,使用的是python2.7。我设置了C:\Python27\env\Scripts\python.exe作为解释器。但是运行时出现了一个错误,说无法导入pdb

从命令行运行虚拟环境中的python并调用'import pdb'没有报错。输入pdb时显示:module 'pdb' from 'C:\Python27\lib\pdb.py'。所以从命令行来看,它能在根目录的lib文件夹中找到pdb。应用引擎的调试输出显示它在使用虚拟环境的python。我确保在设置PyDev解释器时,系统的PYTHONPATH中包含了C:\Python27\lib,但这似乎没有影响。真奇怪。(我还在C:\Python27\DLLs和C:\Python27\lib\lib-tk中有文件)。

所以我尝试用根目录的python.exe作为解释器,这样就没问题了。pdb也能正常工作,所以我的代码是对的。但现在它找不到我在虚拟环境中用pip添加的模块。

看起来有三种方法可以正确设置这个:

  1. 以某种方式使用虚拟环境中的python设置PyDev的python解释器,这样它就能找到根目录的pdb包。(我不知道怎么做,但这似乎是正确的答案。)
  2. 或者使用根目录的python,并将虚拟环境的site-packages添加到我的路径中。(不确定这样是否有效)。
  3. 别听pip的建议 - 在根环境中安装pip,并在根环境中安装我的模块。

我希望有经历过这个的人能给一些建议,告诉我最好的解决办法,以便后续问题最少。

1 个回答

3

我在google-appengine-python的讨论组里查了一些资料,他们建议选择第三个选项:在使用pip的时候,不要听它的建议,因为appengine和virtualenv不太兼容。

参考资料:

Appengine与virtualenv的关系

开发服务器中的奇怪导入(和警告)

撰写回答