Как вывести список всех установленных пакетов и их версий в Python?

Есть ли способ в Python перечислить все установленные пакеты и их версии?

Я знаю, что могу зайти внутрь python/Lib/site-packages и посмотреть, какие файлы и каталоги существуют, но я нахожу это очень неловким. Что я ищу что-то похожее на npm list т.е. npm-ls .

104 голоса | спросил jsalonen 17 +04002012-10-17T21:29:49+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:29:49 +0400 2012, 21:29:49

8 ответов


0

Если у вас установлена ​​программа pip, и вы хотите увидеть, какие пакеты были установлены с помощью инструментов установки, вы можете просто вызвать это:

pip freeze

Он также будет включать номера версий для установленных пакетов.

Обновление

pip был обновлен и теперь производит тот же вывод, что и pip freeze, вызывая:

pip list

Примечание

Выходные данные из pip list отформатированы по-разному, поэтому, если у вас есть какой-то сценарий оболочки, который анализирует выходные данные (возможно, для получения номера версии ) из freeze и хотите изменить скрипт для вызова list, вам нужно изменить код разбора.

ответил jlafay 17 +04002012-10-17T21:31:30+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:31:30 +0400 2012, 21:31:30
0

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
ответил Ashwini Chaudhary 17 +04002012-10-17T21:31:21+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:31:21 +0400 2012, 21:31:21
0

Если вы хотите получить информацию об установленных дистрибутивах 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 и функции print элементы, содержащиеся в итерируемом распечатывается разделенными символами новой строки (\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...
ответил frosty 1 72015vEurope/Moscow11bEurope/MoscowSun, 01 Nov 2015 01:42:20 +0300 2015, 01:42:20
0

Вы можете попробовать: желток

Для установки желток попробуйте:

easy_install yolk
  

Yolk - инструмент Python для получения информации об установленном Python   пакеты и пакеты запросов доступны на PyPI (пакет Python   Index).

     

Вы можете увидеть, какие пакеты активны, неактивны или находятся в разработке.   режим и покажет вам, какие более новые версии доступны по запросу   PyPI.

ответил llazzaro 9 SunEurope/Moscow2012-12-09T09:50:48+04:00Europe/Moscow12bEurope/MoscowSun, 09 Dec 2012 09:50:48 +0400 2012, 09:50:48
0

да! вы должны использовать pip в качестве менеджера пакетов python ( http://pypi.python.org/pypi/pip )

с установленными пакетами pip вы можете сделать

pip freeze

и в нем будут перечислены все установленные пакеты. Возможно, вам также следует использовать virtualenv и virtualenvwrapper . Когда вы начинаете новый проект, вы можете сделать

mkvirtualenv my_new_project

а затем (внутри этого virtualenv) делайте

pip install all_your_stuff

Таким образом, вы можете workon my_new_project, а затем pip freeze чтобы увидеть, какие пакеты установлены для этого virtualenv /проекта.

например:

➜  ~  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 с файлом require.pip,

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

сделает свое дело

ответил Andbdrew 17 +04002012-10-17T21:31:53+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:31:53 +0400 2012, 21:31:53
0

Для запуска этого в более поздних версиях pip (проверено на pip==10.0.1) используйте следующее:

from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
    print(requirement)
ответил exhuma 27 J0000006Europe/Moscow 2018, 10:00:13
0

Вот способ сделать это, используя PYTHONPATH вместо абсолютного пути к каталогу ваших библиотек Python:

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
....
ответил chown 17 +04002012-10-17T21:44:28+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:44:28 +0400 2012, 21:44:28
0

Если вы используете анаконду:

conda list

сделает это! См. https://conda.io/docs/_downloads/conda-cheatsheet.pdf

ответил A. Bollans 19 PMpThu, 19 Apr 2018 14:07:59 +030007Thursday 2018, 14:07:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132