我尝试了this answer的多个解决方案,他们似乎给出了不同的结果。我正在使用virtualenv
,我想知道它是否与此有关。第一种方法,来自python shell(当虚拟环境处于活动状态时):
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
print(installed_packages_list)
这给出了输出
['distribute==0.6.34', 'django==1.8.1', 'flup==1.0.3.dev-20110405', 'importlib==1.0.3']
第二种方法,来自bash shell,同时虚拟环境处于活动状态:
pip freeze
这给出了以下列表:
Warning: cannot find svn location for flup==1.0.3.dev-20110405
Django==1.8.1
Ksplice-Uptrack==1.2.12
MySQL-python==1.2.2
PIL==1.1.7
South==0.7.6
distribute==0.6.34
django-photologue==2.4
dnspython==1.11.1
ethtool==0.6
## FIXME: could not find svn URL in dependency_links for this package:
flup==1.0.3.dev-20110405
importlib==1.0.3
iniparse==0.3.1
iotop==0.3.2
iwlib==1.0
mercurial==1.4
pycurl==7.19.0
pygpgme==0.1
pyzor==1.0.0
urlgrabber==3.9.1
virtualenv==1.9.1
yum-metadata-parser==1.1.2
有人可以解释为什么会这样吗?基本上,我希望能够从第二个列表导入包,但我不能(特别是,我的Django服务器无法导入MySQLdb,如this question,即使在尝试了他们的答案之后)。 / p>
答案 0 :(得分:1)
意识到问题是什么......
pip -V
,得到
pip 1.3.1 from /home/benjam15/.env/env/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg
(python 2.6)
当我使用python 2.7时。自服务器默认" pip"后跟this post。命令路由到python 2.6,而我真的想要为python 2.7安装东西。