Apakah Python memiliki sistem manajemen paket / modul, mirip dengan bagaimana Ruby memiliki rubygem di mana Anda dapat melakukannya gem install packagename
?
Pada Menginstal Modul Python , saya hanya melihat referensi python setup.py install
, tetapi mengharuskan Anda untuk menemukan paket terlebih dahulu.
Jawaban:
Kemajuan terbaru
Maret 2014 : Berita baik! Python 3.4 dikirimkan bersama Pip. Pip telah lama menjadi manajer paket standar de-facto Python. Anda dapat menginstal paket seperti ini:
Wahey! Ini adalah fitur terbaik dari setiap rilis Python. Itu membuat kekayaan perpustakaan komunitas dapat diakses oleh semua orang. Pemula tidak lagi dikecualikan dari penggunaan perpustakaan komunitas karena kesulitan pengaturan.
Namun , masih ada sejumlah frustrasi luar biasa dengan pengalaman pengemasan Python. Secara kumulatif, mereka membuat Python sangat tidak ramah untuk pemula. Juga, sejarah panjang penelantaran (mis. Tidak dikirim dengan manajer paket selama 14 tahun dari Python 2.0 ke Python 3.3) memang merusak komunitas. Saya jelaskan keduanya di bawah ini.
Frustrasi luar biasa
Penting untuk dipahami bahwa meskipun pengguna berpengalaman dapat mengatasi frustrasi ini, mereka adalah penghalang signifikan bagi orang yang baru mengenal Python. Faktanya, kesulitan dan ketidaksopanan pengguna secara umum cenderung menghalangi banyak dari mereka.
Situs web PyPI sangat membantu
Setiap bahasa dengan manajer paket memiliki repositori resmi (atau semi-resmi) untuk komunitas untuk mengunduh dan mempublikasikan paket. Python memiliki Indeks Paket Python, PyPI. https://pypi.python.org/pypi
Mari kita bandingkan halamannya dengan RubyGems dan Npm (pengelola paket Node).
rails
express
simplejson
Anda akan melihat halaman RubyGems dan Npm, keduanya dimulai dengan deskripsi satu baris dari paket tersebut, lalu instruksi ramah yang besar tentang cara menginstalnya.
Sementara itu, celakalah bagi pengguna Python yang malang yang secara naif menelusuri ke PyPI. Di https://pypi.python.org/pypi/simplejson/ , mereka tidak akan menemukan petunjuk yang membantu. Namun demikian, tautan 'Unduh' berwarna hijau besar. Tidak masuk akal untuk mengikutinya. Aha, mereka mengklik! Browser mereka mengunduh
.tar.gz
file. Banyak pengguna Windows bahkan tidak bisa membukanya, tetapi jika mereka bertahan akhirnya mereka dapat mengekstraknya, kemudian jalankansetup.py
dan akhirnya dengan bantuan Googlesetup.py install
. Beberapa akan menyerah dan menemukan kembali roda ..Tentu saja semua ini salah. Cara termudah untuk menginstal paket adalah dengan perintah Pip. Tapi PyPI bahkan tidak menyebut Pip. Sebaliknya, itu membawa mereka ke jalan kuno dan membosankan.
Kesalahan: Tidak dapat menemukan vcvarsall.bat
Numpy adalah salah satu perpustakaan Python yang paling populer. Cobalah untuk menginstalnya dengan Pip, Anda mendapatkan pesan kesalahan samar ini:
Mencoba untuk memperbaikinya adalah salah satu pertanyaan paling populer di Stack Overflow: " error: Tidak dapat menemukan vcvarsall.bat "
Hanya sedikit orang yang berhasil.
Sebagai perbandingan, dalam situasi yang sama, Ruby mencetak pesan ini, yang menjelaskan apa yang terjadi dan bagaimana cara memperbaikinya:
Paket penerbitan sulit
Ruby dan Nodejs dikirimkan bersama dengan manajer paket berfitur lengkap, Gem (sejak 2007) dan Npm (sejak 2011), dan telah membina komunitas berbagi yang berpusat di sekitar GitHub. Npm membuat paket penerbitan semudah menginstalnya, ia sudah memiliki paket 64k . RubyGems mencantumkan paket 72k . Indeks paket Python yang terhormat hanya mencantumkan 41rb .
Sejarah
Terbang di hadapan moto " termasuk baterai ", Python dikirim tanpa manajer paket hingga 2014.
Sampai Pip, standar de facto adalah perintah
easy_install
. Sangat tidak memadai. Tidak ada perintah untuk menghapus paket.Pip adalah kemajuan besar. Itu sebagian besar fitur Ruby Gem. Sayangnya, Pip - sampai saat ini - ironisnya sulit untuk menginstal. Bahkan, masalahnya tetap menjadi pertanyaan Python teratas di Stack Overflow: " Bagaimana cara saya menginstal pip pada Windows? "
sumber
gem install X
sepertinya berfungsi di semua platform. Jadi bagaimana mereka mengelola ini untuk permata yang memerlukan kompilasi kode C pada Windows?Indeks Paket Python (PyPI) tampaknya standar:
pip install MyProject
pip install --upgrade MyProject
pip install MyProject==1.0
Anda dapat menginstal manajer paket sebagai berikut:
Referensi:
sumber
Dan hanya untuk memberikan kontras, ada juga pip .
sumber
Sebagai pengembang dan pengembang Ruby dan Perl-Python, saya belum menemukan easy_install atau pip sama dengan RubyGems atau CPAN.
Saya cenderung menjaga sistem pengembangan saya menjalankan versi modul terbaru ketika pengembang memperbaruinya, dan membekukan sistem produksi saya di versi yang ditetapkan. Baik RubyGems dan CPAN membuatnya mudah untuk menemukan modul dengan mendaftar apa yang tersedia, kemudian menginstal dan kemudian memperbaruinya secara individu atau secara massal jika diinginkan.
easy_install dan pip membuatnya mudah untuk menginstal modul SEKALI saya menemukannya melalui pencarian browser atau belajar tentang itu dengan cara lain, tetapi mereka tidak akan memberi tahu saya apa yang tersedia. Saya dapat secara eksplisit memberi nama modul yang akan diperbarui, tetapi aplikasi tidak akan memberi tahu saya apa yang telah diperbarui atau mereka akan memperbarui semuanya secara massal jika saya mau.
Jadi, fungsionalitas dasar ada di pip dan easy_install tetapi ada fitur yang hilang yang ingin saya lihat yang akan membuatnya lebih ramah dan lebih mudah digunakan dan setara dengan CPAN dan RubyGems.
sumber
Setidaknya ada dua, easy_install dan pip penggantinya .
sumber
Hingga akhir tahun 2014, distribusi Anaconda Python dari Continuum Analytics dengan conda manajer paket harus dipertimbangkan. Ini memecahkan sebagian besar masalah serius yang dihadapi orang dengan Python secara umum (mengelola versi Python yang berbeda, memperbarui versi Python, manajemen paket, lingkungan virtual, kompatibilitas Windows / Mac) dalam satu unduhan yang kohesif.
Ini memungkinkan Anda untuk melakukan hampir semua yang Anda inginkan dengan Python tanpa harus mengubah sistem sama sekali. Solusi pilihan saya berikutnya adalah pip + virtualenv, tetapi Anda harus menginstal virtualenv ke dalam sistem Anda Python (dan sistem Anda Python mungkin bukan versi yang Anda inginkan), atau membangun dari sumber . Anaconda membuat seluruh proses ini klik tombol, serta menambahkan banyak fitur lainnya.
sumber
Itu akan menjadi easy_install .
sumber
easy_install
, periksa tanggalnya terlebih dahulu. Itu nasihat yang sahih ketika diberikan hampir 7 tahun yang lalu . Saya tidak menganggap kita penjawab akan secara teratur mengunjungi kembali ini untuk memperbarui, jadi downvoting itu konyol.Ini disebut setuptools. Anda menjalankannya dengan perintah "easy_install".
Anda dapat menemukan direktori di http://pypi.python.org/
sumber
Saya tidak melihat MacPorts atau Homebrew disebutkan dalam jawaban lain di sini, tetapi karena saya melihat mereka disebutkan di tempat lain di Stack Overflow untuk pertanyaan terkait, saya akan menambahkan US $ 0,02 saya sendiri yang tampaknya banyak orang menganggap MacPorts bukan hanya paket. manajer untuk paket secara umum (saat ini mereka mencantumkan 16311 paket / port, 2931 pencocokan "python", meskipun hanya untuk Mac), tetapi juga sebagai manajer paket yang layak (mungkin lebih baik) untuk paket / modul Python:
Pertanyaan
"... apa metode yang digunakan pengembang python Mac untuk mengelola modul mereka?"
Jawaban
"MacPorts sangat cocok untuk Python di Mac."
"Cara terbaik adalah menggunakan MacPorts."
"Saya lebih suka MacPort ..."
"Dengan pengaturan MacPorts saya ..."
"Saya menggunakan MacPorts untuk menginstal ... modul pihak ketiga dilacak oleh MacPorts"
SciPy
"Mac (tidak seperti Linux) tidak datang dengan manajer paket, tetapi ada beberapa manajer paket populer yang dapat Anda instal. Macports ..."
Saya masih memperdebatkan apakah saya akan menggunakan MacPorts sendiri atau tidak, tetapi saat ini saya condong ke arah itu.
sumber
pip install <your_favorite_package>
Pada Windows menginstal http://chocolatey.org/ kemudian
Buka jendela cmd baru dengan PATH yang diperbarui. Selanjutnya, lakukan
Setelah itu kamu bisa
sumber
Karena tidak ada yang menyebutkan pipenv di sini, saya ingin menjelaskan pandangan saya mengapa semua orang harus menggunakannya untuk mengelola paket python.
Seperti @ColonelPanic menyebutkan ada beberapa masalah dengan Python Package Index dan juga pip dan virtualenv .
Pipenv memecahkan sebagian besar masalah dengan pip dan menyediakan fitur tambahan juga.
Fitur Pipenv
Pipenv dimaksudkan untuk menggantikan pip dan virtualenv, yang berarti pipenv akan secara otomatis membuat lingkungan virtual yang terpisah untuk setiap proyek sehingga menghindari konflik antara versi python / versi paket untuk proyek yang berbeda.
Jika Anda pernah mengerjakan proyek python sebelumnya, Anda akan menyadari fitur-fitur ini membuat mengelola paket lebih mudah.
Perintah lain
check
memeriksa kerentanan keamanan dan menegaskan bahwa persyaratan PEP 508 dipenuhi oleh lingkungan saat ini. ( yang saya pikir merupakan fitur hebat terutama setelah ini - Paket berbahaya di PyPi )graph
akan menampilkan grafik dependensi, dari dependensi yang Anda instal.Anda dapat membaca lebih lanjut tentang ini di sini - Pipenv .
Instalasi
Anda dapat menemukan dokumentasi instalasi di sini
PS: Jika Anda suka bekerja dengan permintaan Paket Python , Anda akan senang mengetahui bahwa pipenv adalah oleh pengembang yang sama Kenneth Reitz
sumber
Pada 2019 puisi adalah paket dan manajer ketergantungan yang Anda cari.
https://github.com/sdispater/poetry#why
Ini modern, sederhana, dan andal.
sumber
Puisi adalah yang Anda cari. Ini mengurus manajemen ketergantungan, lingkungan virtual, berjalan.
sumber