web-dev-qa-db-ja.com

Pythonですべてのインストール済みパッケージとそのバージョンをリストする方法

インストールされているすべてのパッケージとそのバージョンを一覧表示する方法はPythonにありますか?

私はpython/Lib/site-packagesの中に入ってどんなファイルとディレクトリが存在するかを見ることができることを知っています、しかし私はこれが非常に厄介だと思います。 npm list、つまり npm-ls に似たものを探しています。

111
jsalonen

もしあなたがpip installを持っていて、あなたのインストーラツールでどんなパッケージがインストールされたか見たいのなら、あなたは単にこれを呼ぶことができます:

pip freeze

インストールされたパッケージのバージョン番号も含まれます。

更新

次の呼び出しによって、pipはpip freezeと同じ出力も生成するように更新されました。

pip list

pip listからの出力は異なるフォーマットになっているので、(おそらくバージョン番号を取得するために)freezeの出力を解析するシェルスクリプトがあり、それをlistを呼び出すように変更したい場合は、解析コードを変更する必要があります。

175
jlafay

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
40

インストールされているpythonディストリビューションに関する情報を入手したいが、それに対してcmdコンソールや端末を使用したくない場合は、次のコードを使用できます(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...
25
frosty

あなたは試すことができます:卵黄

インストール卵黄のために、試してみてください。

easy_install yolk

Yolkは、インストール済みのPythonパッケージに関する情報を入手したり、PyPI(Python Package Index)で利用可能なパッケージをクエリしたりするためのPythonツールです。

どのパッケージがアクティブであるか、非アクティブであるか、または開発モードであるかを確認したり、PyPIを照会することで新しいバージョンがあるかどうかを確認したりできます。

8
llazzaro

コマンドラインから

python -c help('modules')

すべてのモジュールを表示したり、特定のモジュールを表示するために使用できます。

python -c help('os')

以下のLinuxでは動作します

python -c "help('os')"
7
Npradhan

これを新しいバージョンのpip(pip==10.0.1でテスト済み)で実行するには、次のようにします。

from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
    print(requirement)
6
exhuma

はい!あなたのPythonパッケージマネージャとしてpipを使うべきです( http://pypi.python.org/pypi/pip

pipがインストールされたパッケージでは、

pip freeze

そしてそれはすべてのインストール済みパッケージをリストします。おそらく virtualenvvirtualenvwrapper も使うべきでしょう。新しいプロジェクトを始めるとき、あなたはすることができます

mkvirtualenv my_new_project

それから(そのvirtualenvの中で)、

pip install all_your_stuff

このようにして、workon my_new_projectそしてpip freezeでそのvirtualenv/projectにどのパッケージがインストールされているかを見ることができます。

例えば:

➜  ~  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)➜  ~  

または、Requirements.pipファイルを含むpythonパッケージがある場合は、

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

トリックをします

5
Andbdrew

これはあなたのpythonのlibsディレクトリの絶対パスの代わりにPYTHONPATHを使ってそれを行う方法です:

for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done

[ 10:43 Jonathan@MacBookPro-2 ~/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
....
2
chown

アナコンダを使用している場合

conda list

やります!参照してください: https://conda.io/docs/_downloads/conda-cheatsheet.pdf

1
A. Bollans

私の考え:

#!/usr/bin/env python3

import pkg_resources

dists = [str(d).replace(" ","==") for d in pkg_resources.working_set]
for i in dists:
    print(i)
1
alfredocambera