Я пробовал несколько решений от this answer, и они, казалось, давали разные результаты. Я использую virtualenv
, и мне было интересно, если это что-то связано с этим. Первый метод, из питона оболочки (в то время как виртуальная среда активна):«pip freeze» дает разные модули из «help ('modules») «
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']
Второй метод, с Баш оболочки, опять же в то время как виртуальная среда активные:
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, даже после проверки их ответов).