Как перечислить все установленные пакеты и их версии в Python?
Есть ли способ в Python перечислить все установленные пакеты и их версии?
Я знаю, что могу войти внутрь python/Lib/site-packages
и посмотреть, какие файлы и каталоги существуют, но я нахожу это очень неудобным. Я ищу что-то похожее на npm list
[1].
Ответы
Ответ 1
Если у вас установлена программа pip, и вы хотите узнать, какие пакеты были установлены с помощью инструментов установки, вы можете просто называть это:
pip freeze
Он также будет содержать номера версий для установленных пакетов.
Обновление
pip был обновлен, чтобы также получить тот же результат, что и pip freeze
, вызвав:
pip list
Примечание
Вывод из pip list
отформатирован по-разному, поэтому, если у вас есть оболочка script, которая анализирует вывод (возможно, для доступа к номеру версии) freeze
и хочет изменить ваш script на вызов list
, вам нужно будет изменить свой синтаксический код.
Ответ 2
help('modules')
должен сделать это за вас.
в IPython:
In [1]: import #import press-TAB
Display all 631 possibilities? (y or n)
ANSI audiodev markupbase
AptUrl audioop markupsafe
ArgImagePlugin avahi marshal
BaseHTTPServer axi math
Bastion base64 md5
BdfFontFile bdb mhlib
BmpImagePlugin binascii mimetools
BufrStubImagePlugin binhex mimetypes
CDDB bisect mimify
CDROM bonobo mmap
CGIHTTPServer brlapi mmkeys
Canvas bsddb modulefinder
CommandNotFound butterfly multifile
ConfigParser bz2 multiprocessing
ContainerIO cPickle musicbrainz2
Cookie cProfile mutagen
Crypto cStringIO mutex
CurImagePlugin cairo mx
DLFCN calendar netrc
DcxImagePlugin cdrom new
Dialog cgi nis
DiscID cgitb nntplib
DistUpgrade checkbox ntpath
Ответ 3
Если вы хотите получить информацию о своих установленных дистрибутивах python и не хотите использовать консоль или консоль cmd для нее, а скорее через код python, вы можете использовать следующий код (проверенный с помощью python 3.4):
import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
print(i)
Функциональный вызов pip.get_installed_distributions(local_only=True)
возвращает итерабельность, и из-за функции for-loop и print функции элементы, содержащиеся в iterable, распечатываются, разделенные новыми строковыми символами (\n
).
Результат будет (в зависимости от ваших установленных дистрибутивов) выглядеть примерно так:
cycler 0.9.0
decorator 4.0.4
ipykernel 4.1.0
ipython 4.0.0
ipython-genutils 0.1.0
ipywidgets 4.0.3
Jinja2 2.8
jsonschema 2.5.1
jupyter 1.0.0
jupyter-client 4.1.1
#... and so on...
Ответ 4
Вы можете попробовать: Желток
Для установки желтка попробуйте:
easy_install yolk
Yolk - это инструмент Python для получения информации об установленном Python пакеты и пакеты запросов, доступные на PyPI (пакет Python Index).
Вы можете видеть, какие пакеты активны, неактивны или находятся в разработке режиме и покажите вам, какие новые версии доступны для запросов PyPI.
Ответ 5
из командной строки
python -c help('modules')
может использоваться для просмотра всех модулей и для определенных модулей
python -c help('os')
Для Linux ниже будет работать
python -c "help('os')"
Ответ 6
да! вы должны использовать pip в качестве менеджера пакетов python (http://pypi.python.org/pypi/pip)
с установленными пакетами, вы можете сделать
pip freeze
и он отобразит все установленные пакеты. Вероятно, вы также должны использовать virtualenv и virtualenvwrapper. Когда вы начинаете новый проект, вы можете сделать
mkvirtualenv my_new_project
и затем (внутри этого виртуального), do
pip install all_your_stuff
Таким образом, вы можете workon my_new_project
, а затем pip freeze
посмотреть, какие пакеты установлены для этого виртуального/проекта.
например:
➜ ~ mkvirtualenv yo_dude
New python executable in yo_dude/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/get_env_details
(yo_dude)➜ ~ pip install django
Downloading/unpacking django
Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
Running setup.py egg_info for package django
Installing collected packages: django
Running setup.py install for django
changing mode of build/scripts-2.7/django-admin.py from 644 to 755
changing mode of /Users/aaylward/dev/virtualenvs/yo_dude/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
(yo_dude)➜ ~ pip freeze
Django==1.4.1
wsgiref==0.1.2
(yo_dude)➜ ~
или если у вас есть пакет python с файлом requirements.pip,
mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze
выполнит трюк
Ответ 7
Вот способ сделать это, используя PYTHONPATH
вместо абсолютного пути вашего каталога python libs:
for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done
[ 10:43 [email protected] ~/xCode/Projects/Python for iOS/trunk/Python for iOS/Python for iOS ]$ for d in `echo "$PYTHONPATH" | tr ':' '\n'`; do ls "${d}"; done
libpython2.7.dylib pkgconfig python2.7
BaseHTTPServer.py _pyio.pyc cgitb.pyo doctest.pyo htmlentitydefs.pyc mimetools.pyc plat-mac runpy.py stringold.pyc traceback.pyo
BaseHTTPServer.pyc _pyio.pyo chunk.py dumbdbm.py htmlentitydefs.pyo mimetools.pyo platform.py runpy.pyc stringold.pyo tty.py
BaseHTTPServer.pyo _strptime.py chunk.pyc dumbdbm.pyc htmllib.py mimetypes.py platform.pyc runpy.pyo stringprep.py tty.pyc
Bastion.py _strptime.pyc chunk.pyo dumbdbm.pyo htmllib.pyc mimetypes.pyc platform.pyo sched.py stringprep.pyc tty.pyo
Bastion.pyc _strptime.pyo cmd.py
....