Cara mengetahui apakah modul python diinstal atau tidak dalam sistem: Anda dapat melakukan tes yang sangat mudah di terminal,
$ python -c "import math"
$ echo $?
0 # math module exists in system
$ python -c "import numpy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named numpy
$ echo $?
1 # numpy module does not exist in system
Bagaimana saya menginstalnya jika tidak diinstal?
Anda dapat menginstal modul tertentu dengan mengunduh paket masing-masing dari repositori, misalnya Anda dapat menginstalscipy
sebagai,
sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3
Bergantian Anda juga dapat menginstal modul python menggunakan python-pip
seperti yang disarankan oleh Zack Titan di komentar di bawah ini , Untuk menginstal numpy
Anda dapat menggunakan
pip install numpy
Peringatan: Sangat disarankan untuk menginstal modul python hanya menggunakan repositori resmi Ubuntu dan tidak menggunakan pip
metode sebagai superuser (yaitu, sebagai root
atau menggunakan sudo
). Dalam beberapa kasus, ini dapat membuat sistem Anda tidak dapat digunakan dengan memecah sistem python.
Cara menginstal paket menggunakan pip
ke lingkungan virtual lokal.
vpython
Anda harus menginstalnya sebagaisudo apt-get install python-visual libgtkglextmm-x11-1.2-dev
sudo pip
; itu dapat merusak sistem python. Gunakan apt-get untuk menginstal paket untuk sistem python. Anda bisa menggunakanpip --user
opsi atau virtualenv untuk menginstal paket Python untuk Anda sendiri.Jika kita tidak ingin mengimpor modul yang tidak diinginkan (yang akan terjadi dalam
try
pernyataan), kita dapat menggunakansys.modules
untuk menguji modul yang diinstal dan diimpor sebelumnya.Dalam masalah shell python:
Kemudian uji untuk modul yang diinstal:
Perhatikan bahwa hanya modul-modul yang diimpor sebelum memberikan
True
pengujian ini, semua modul lain (bahkan jika diinstal) menghasilkanFalse.
Alternatif lain untuk
try
sebuahimport
pernyataan di konsol python memanggil inbuilthelp()
fungsi. Ini tidak akan memberikan dokumentasi untuk modul yang tidak diinstal, misalnyaOutput dokumen bantuan yang sangat panjang dari modul yang diinstal dapat terganggu Q.
Sekarang untuk menginstal modul yang hilang, disarankan untuk menggunakan manajemen paket Ubuntu (dan bukan cara pip Python) karena kita memerlukan akses root dan juga untuk mencegah mengacaukan sistem Python-dependend kita. Untuk modul yang dimaksud misalnya adalah:
Setelah instalasi kita kemudian dapat menambahkannya ke
sys.modules
kamus dengan mengimpornya sekali.sumber
sys.modules
hanya berisi modul yang sudah diimpor , jadi ini bukan cara yang dapat diandalkan untuk menguji apakah suatu modul telah diinstal. Tes yang paling dapat diandalkan adalah dengan menggunakan atry/except
dan menjebaknyaImportError
, seperti yang telah disarankan beberapa orang lainnya.sys.modules
sama sekali tidak relevan dan saya pikir penyebutan itu menyesatkan. Tapi mungkin itu hanya aku.sys.modules
tidak ada bantuan di sini.Cara lain adalah
pkgutil
modul. Bekerja dengan Python 2 & 3:Anda perlu mengganti
module
dengan nama modul Anda, contoh:sumber
print()
juga akan berfungsi dengan baik di Python 2; Itu diperlakukan sebagai sintaks grup-dengan-parens, dan tidak memiliki efek samping. Hanya ketika Anda ingin menambahkan beberapa item (seperti diprint('a', 'b')
dalamnya akan diperlakukan sebagaituple
, di mana Anda memang membutuhkannyafrom __future__ import print_function
, tetapi itu tidak berlaku dalam kasus ini, Anda hanya dapat menulis kode yang kompatibel dengan maju dengan menambahkan parens (saya menguji perubahan saya dalam Python 2 dan 3)exit
sehingga dapat digunakan dalam konteks shell:python -c 'import pkgutil; exit(0 if pkgutil.find_loader("math") else 2)'
Saya tahu OP awalnya meminta solusi setelah memulai Python, tetapi di luar python saya gunakan
pip
. Di ubuntu:,sudo apt-get install python-pip
jika belum diinstal.Kemudian untuk melihat modul pihak ketiga apa yang tersedia, jalankan saja:
Atau bahkan
Dan keduanya akan menunjukkan kepada Anda semua modul yang terpasang dan versinya.
Jika modul yang Anda cari tidak diinstal, sebagian besar waktu Anda dapat dengan mudah menginstalnya dengan pip:
Jika Anda tidak yakin apakah modul itu ada atau apa namanya PyPI, gunakan
pip search
:sumber
pip show <module-name>
akan menunjukkan apakah suatu paket diinstal, mispip show numpy
.Anda bisa memasukkan kode ke dalam
try
,except
blokir.sumber
Untuk memberikan jawaban lain, demi penyelesaian:
Anda dapat (ab) menggunakan
-m
opsi. Dari halaman Python:Yang akan memberi kita:
Tetapi untuk modul yang tidak ada, itu akan memberi kita:
Kita bisa menggunakan
grep
untuk mencocokkan ini:Ini sedikit hack-ish, dan bukan untuk apa
-m
; tetapi ini adalah metode yang paling tidak membutuhkan pengetikan jika Anda ingin tes cepat :-)sumber
grep -q
membuat pengalihan ke nol tidak perlu./dev/null
Saya menulis contoh dengan Python:
sumber
Pemeriksaan oneliner Shell (berguna untuk penyediaan)
Saya menemukan bahwa untuk membuat penyediaan infrastruktur saya ** idempoten, saya harus dapat memeriksa paket dari shell di oneliner. Saya membangun jawaban @ cuonglm. Saya harus membalikkan
1
dan0
karena saya menghasilkan status keluar daripada mencetak string.Anda dapat menggantinya
sys.argv[1]
dengan nama yang dikutip tunggal dari paket Anda, tetapi untuk skrip penyediaan saya, saya suka keterbacaan memilikinya pada akhirnya.** Saya menyadari bahwa koki , boneka , dan yang mungkin semua memiliki plugin untuk mengelola paket python, tetapi Anda mungkin menemukan diri Anda dalam situasi seperti saya di mana Anda menggunakan versi yang sudah ketinggalan zaman dan tidak ingin menggunakan plugin yang sudah usang.
sumber
Satu juga dapat menggunakan
pydoc modules
, yang dapat disaring dengangrep
untuk menemukan modul tertentu. Outputnya ditampilkan dalam format kolom. Satu-satunya kelemahan dari pendekatan ini adalah bahwa ia juga akan memasukkan file python dalam direktori kerja saat ini. Meskipun demikian, saya sering menggunakannya sendiri dan ini adalah salah satu pendekatan yang sangat dikutip pada pertanyaan terkait ini: https://stackoverflow.com/q/739993/3701431sumber
Dari Shell Ubuntu, secara default bash, sesederhana
Contohnya
Dan, jika Anda memiliki keraguan tentang kasus ini (meskipun saya pikir semua nama paket selalu huruf kecil):
sumber
Saat menulis ini,
pip show ...
tampaknya menjadi cara termudah: https://pip.pypa.io/en/stable/reference/pip_show/Tetapi diam (mis. Mengembalikan apa-apa) ketika paket tidak diinstal.
sumber