インストールされているすべてのパッケージとそのバージョンを一覧表示する方法はPythonにありますか?
私はpython/Lib/site-packages
の中に入ってどんなファイルとディレクトリが存在するかを見ることができることを知っています、しかし私はこれが非常に厄介だと思います。 npm list
、つまり npm-ls に似たものを探しています。
もしあなたがpip installを持っていて、あなたのインストーラツールでどんなパッケージがインストールされたか見たいのなら、あなたは単にこれを呼ぶことができます:
pip freeze
インストールされたパッケージのバージョン番号も含まれます。
更新
次の呼び出しによって、pipはpip freeze
と同じ出力も生成するように更新されました。
pip list
注
pip list
からの出力は異なるフォーマットになっているので、(おそらくバージョン番号を取得するために)freeze
の出力を解析するシェルスクリプトがあり、それをlist
を呼び出すように変更したい場合は、解析コードを変更する必要があります。
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
インストールされている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...
あなたは試すことができます:卵黄
インストール卵黄のために、試してみてください。
easy_install yolk
Yolkは、インストール済みのPythonパッケージに関する情報を入手したり、PyPI(Python Package Index)で利用可能なパッケージをクエリしたりするためのPythonツールです。
どのパッケージがアクティブであるか、非アクティブであるか、または開発モードであるかを確認したり、PyPIを照会することで新しいバージョンがあるかどうかを確認したりできます。
コマンドラインから
python -c help('modules')
すべてのモジュールを表示したり、特定のモジュールを表示するために使用できます。
python -c help('os')
以下のLinuxでは動作します
python -c "help('os')"
これを新しいバージョンのpip(pip==10.0.1
でテスト済み)で実行するには、次のようにします。
from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
print(requirement)
はい!あなたのPythonパッケージマネージャとしてpipを使うべきです( 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/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
トリックをします
これはあなたの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
....
私の考え:
#!/usr/bin/env python3
import pkg_resources
dists = [str(d).replace(" ","==") for d in pkg_resources.working_set]
for i in dists:
print(i)