Apakah ada cara di Python untuk mendaftar semua paket yang diinstal dan versinya?
Saya tahu saya bisa masuk ke dalam python/Lib/site-packages
dan melihat file dan direktori apa yang ada, tetapi saya merasa ini sangat canggung. Apa yang saya cari adalah sesuatu yang mirip npm list
yaitu npm-ls .
Jawaban:
Jika Anda memiliki instalasi pip dan Anda ingin melihat paket apa yang telah diinstal dengan alat pemasang Anda, Anda dapat menyebutnya:
Ini juga akan menyertakan nomor versi untuk paket yang diinstal.
Memperbarui
pip telah diperbarui untuk juga menghasilkan keluaran yang sama
pip freeze
dengan menelepon:Catatan
Output dari
pip list
diformat secara berbeda, jadi jika Anda memiliki beberapa skrip shell yang mem-parsing output (mungkin untuk mengambil nomor versi)freeze
dan ingin mengubah skrip Anda untuk dipanggillist
, Anda harus mengubah kode parsing Anda.sumber
pip list
sebagai alias untukpip freeze
. Ini intuitif untuk menulispip freeze > requirements.txt
, tetapi tidakpip freeze
.pip list
: pip-installer.org/en/latest/usage.html#pip-list - jadi ini sebenarnya adalah sesuatu yang sudah datang!help('modules')
harus melakukannya untukmu.dalam IPython:
sumber
Package.version()
ataupackage.__version__
ataupackage.ver
atau sejumlah kemungkinan lainnyaJika Anda ingin mendapatkan informasi tentang distribusi python yang diinstal dan tidak ingin menggunakan cmd console atau terminal Anda untuk itu, melainkan melalui kode python, Anda dapat menggunakan kode berikut (diuji dengan python 3.4):
The
pip.get_installed_distributions(local_only=True)
fungsi panggilan mengembalikan sebuah iterable dan karena untuk loop dan fungsi cetak unsur-unsur yang terkandung dalam iterable yang dicetak dipisahkan oleh karakter baris baru (\n
). Hasilnya akan (tergantung pada distribusi yang Anda instal) akan terlihat seperti ini:sumber
pkg_resources
? AFAICR ini bagian darisetuptools
. Tidakpip
. Bisakah kita dengan aman berasumsi bahwasetuptools
akan selalu tersedia hanya bergantung padapip
?Anda dapat mencoba: Kuning telur
Untuk memasang kuning telur, coba:
sumber
Untuk menjalankan ini di versi pip yang lebih baru (diuji pada
pip==10.0.1
) gunakan yang berikut ini:sumber
pydoc pip._internal
tetapi saya tidak dapat mencapainya di bawahhelp(pip._internal)
, pip .__ builtins_ dll. Panduan referensi pip juga kosong._internal
. Sepertinya fungsionalitasnya tidak terekspos secara resmi. Jadi, Anda harus menangani ini dengan hati-hati!dari baris perintah
dapat digunakan untuk melihat semua modul, dan untuk modul tertentu
Untuk Linux di bawah ini akan berfungsi
sumber
-bash: syntax error near unexpected token `('
Iya! Anda harus menggunakan pip sebagai manajer paket python Anda ( http://pypi.python.org/pypi/pip )
dengan paket yang terinstal, Anda dapat melakukan
dan itu akan mencantumkan semua paket yang diinstal. Anda mungkin juga harus menggunakan virtualenv dan virtualenvwrapper . Ketika Anda memulai proyek baru, Anda bisa melakukannya
dan kemudian (di dalam virtualenv itu), lakukan
Dengan cara ini, Anda dapat
workon my_new_project
dan kemudianpip freeze
untuk melihat paket mana yang diinstal untuk proyek virtualenv itu.sebagai contoh:
atau jika Anda memiliki paket python dengan file requirement.pip,
akan melakukan trik
sumber
pip
bersamaan dengan ini!virtualenv
dengan paket situs global, Anda harus menggunakannyapip list --local
.virtualenv
. Saya tidak mengetahui alasan untuk tidak menggunakannya, dan tidak ada yang mencegah Anda membatasi menjadi terisolasivirtualenv
jika Anda mau.Saya ambil:
sumber
Inilah cara untuk melakukannya dengan menggunakan
PYTHONPATH
alih-alih jalur absolut dari dir python libs Anda:sumber
Jika Anda menggunakan anaconda:
akan melakukannya! Lihat: https://conda.io/docs/_downloads/conda-cheatsheet.pdf
sumber
Jika ini diperlukan untuk dijalankan dari dalam python, Anda bisa menjalankan subproses
sumber