Python中是否有方法列出所有已安裝的軟件包及其版本?如何在Python中列出所有已安裝的軟件包及其版本?
我知道我可以進入python/Lib/site-packages
,看看有什麼文件和目錄存在,但我覺得這很尷尬。我在找什麼與npm list
[1]類似的東西。
Python中是否有方法列出所有已安裝的軟件包及其版本?如何在Python中列出所有已安裝的軟件包及其版本?
我知道我可以進入python/Lib/site-packages
,看看有什麼文件和目錄存在,但我覺得這很尷尬。我在找什麼與npm list
[1]類似的東西。
如果你PIP安裝你想看到包已經安裝了哪些與您的安裝工具,你可以簡單地調用這個:
pip freeze
它還將包括已安裝軟件包的版本號。
更新
PIP已經更新也通過調用產生的輸出爲pip freeze
相同:
pip list
注意
從pip list
的輸出格式不同,因此,如果你有一些shell腳本可以解析輸出(也許獲取版本號)freeze
並且想要更改腳本以調用list
,則需要更改解析代碼。
help('modules')
應該爲你做。
:
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
這很方便!儘管如此,我也很樂意看到這些版本。 – jsalonen
我認爲問題是沒有標準化的方式包括版本...有時它的'Package.version()'或'包.__ version__'或'package.ver'或任何數量的其他可能性 –
我認爲Python的格言是「只有一種方法可以做到」)? –
是的!你應該使用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包與要求。PIP文件,
mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze
會做的伎倆
這裏是一種使用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
....
您可以嘗試:蛋黃
對於安裝蛋黃,嘗試:
easy_install yolk
Yolk is a Python tool for obtaining information about installed Python packages and querying packages avilable on PyPI (Python Package Index).
You can see which packages are active, non-active or in development mode and show you which have newer versions available by querying PyPI.
如果你想獲得你安裝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循環和打印功能包含在i中的元素可以打印出新的一行字符(\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...
命令行
python -c help('modules')
可以用於查看所有模塊,以及特定模塊
python -c help('os')
對於Linux下面將工作
python -c "help('os')"
這適用於Windows。在linux上它會拋出錯誤:'-bash:在意外標記附近的語法錯誤\'('' – AjayKumarBasuthkar
可能的重複[如何獲得本地安裝的Python模塊列表?](http://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed- python-modules) – RNA