Mengapa Pengembang Python Harus Menggunakan Pipenv
vermeer2011

Mengapa Pengembang Python Harus Menggunakan Pipenv

Mengapa Pengembang Python Harus Menggunakan Pipenv – Baru berusia satu tahun, Pipenv telah menjadi sumber daya resmi yang direkomendasikan Python untuk mengelola dependensi paket.

Pipenv, “Alur Kerja Pengembangan Python untuk Manusia” yang dibuat oleh Kenneth Reitz lebih dari setahun yang lalu, telah menjadi sumber daya resmi yang direkomendasikan Python untuk mengelola dependensi paket.

Mengapa Pengembang Python Harus Menggunakan Pipenv

Tapi masih ada kebingungan tentang masalah apa yang dipecahkannya dan bagaimana itu lebih berguna daripada alur kerja standar yang digunakan pipdan requirements.txtfile. Di kolom Python bulan ini, kami akan mengisi kekosongannya.

Sejarah Singkat Instalasi Paket Python

Untuk memahami masalah yang dipecahkan Pipenv, akan berguna untuk menunjukkan bagaimana manajemen paket Python telah berevolusi. https://www.detectionperfection.com/

Kembalikan diri Anda ke iterasi Python pertama. Kami memiliki Python, tetapi tidak ada cara yang bersih untuk menginstal paket. taruhan bola

Kemudian datanglah Easy Install, sebuah paket yang menginstal paket Python lainnya dengan relatif mudah. Tapi itu datang dengan menangkap: tidak mudah untuk menghapus paket yang tidak lagi dibutuhkan. americandreamdrivein.com

Masukkan pip, yang sudah dikenal oleh sebagian besar pengguna Python. pipbiarkan kami menginstal dan menghapus paket. Kita bisa menentukan versi, menjalankan pip freeze > requirements.txt untuk mengeluarkan daftar paket yang diinstal ke file teks, dan menggunakan file teks yang sama untuk menginstal semua yang dibutuhkan aplikasi pip install -r requirements.txt.

Tetapi pip tidak menyertakan cara untuk mengisolasi paket satu sama lain. Kami mungkin bekerja pada aplikasi yang menggunakan versi berbeda dari pustaka yang sama, jadi kami membutuhkan cara untuk mengaktifkannya.

Seiring datangnya lingkungan virtual, yang memungkinkan kami membuat lingkungan kecil dan terisolasi untuk setiap aplikasi yang kami kerjakan.

Kami telah melihat banyak alat untuk mengelola lingkungan virtual: virtualenv, venv, virtualenvwrapper, pyenv, pyenv-virtualenv, pyenv-virtualenvwrapper, dan banyak lagi. Mereka semua bermain baik dengan file pipdan requirements.txt.

Anak baru: Pipenv

Pipenv bertujuan untuk memecahkan beberapa masalah. Pertama, masalah membutuhkan pipperpustakaan untuk instalasi paket, ditambah perpustakaan untuk membuat lingkungan virtual, ditambah perpustakaan untuk mengelola lingkungan virtual, ditambah semua perintah yang terkait dengan perpustakaan tersebut.

Banyak sekali yang harus dikelola. Pipenv dikirimkan dengan manajemen paket dan dukungan lingkungan virtual, sehingga Anda dapat menggunakan satu alat untuk menginstal, menghapus instalan, melacak, dan mendokumentasikan dependensi Anda serta untuk membuat, menggunakan, dan mengatur lingkungan virtual Anda. Saat Anda memulai proyek dengannya, Pipenv akan secara otomatis membuat lingkungan virtual untuk proyek itu jika Anda belum menggunakannya.

Pipenv menyelesaikan manajemen ketergantungan ini dengan meninggalkan requirements.txtnorma dan menukarnya dengan dokumen baru yang disebut Pipfile. Saat Anda menginstal pustaka dengan Pipenv, a Pip file untuk proyek Anda secara otomatis diperbarui dengan detail penginstalan tersebut, termasuk informasi versi dan mungkin lokasi repositori Git, jalur file, dan informasi lainnya.

Kedua, Pipenv ingin mempermudah pengelolaan interdependensi yang kompleks. Aplikasi Anda mungkin bergantung pada versi tertentu dari sebuah perpustakaan, dan perpustakaan itu mungkin bergantung pada versi tertentu dari perpustakaan lain, dan itu hanya dependensi dan kura-kura sepanjang jalan.

Jika dua pustaka yang digunakan aplikasi Anda memiliki ketergantungan yang saling bertentangan, hidup Anda bisa menjadi sulit. Pipenv ingin meringankan rasa sakit itu dengan melacak pohon ketergantungan aplikasi Anda dalam sebuah file bernama Pipfile.lock. Pipfile.lock juga memverifikasi bahwa versi dependensi yang tepat digunakan dalam produksi.

Selain itu, Pipenv berguna saat banyak pengembang sedang mengerjakan sebuah proyek. Dengan pipalur kerja, Casey mungkin menginstal pustaka dan menghabiskan dua hari mengimplementasikan fitur baru menggunakan pustaka itu.

Saat Casey melakukan perubahan, mereka mungkin lupa menjalankan pip freezeuntuk memperbarui file persyaratan. Keesokan harinya, Jamie menarik perubahan Casey, dan tiba-tiba tes gagal. Perlu waktu untuk menyadari bahwa masalahnya adalah pustaka yang hilang dari file persyaratan yang tidak diinstal Jamie di lingkungan virtual.

Karena Pipenv mendokumentasikan secara otomatis dependensi saat Anda menginstalnya, jika Jamie dan Casey telah menggunakan Pipenv, itu Pipfileakan diperbarui secara otomatis dan disertakan dalam komit Casey. Jamie dan Casey akan menghemat waktu dan mengirimkan produk mereka lebih cepat.

Terakhir, menggunakan sinyal Pipenv kepada orang lain yang mengerjakan proyek Anda yang dikirimkan dengan cara standar untuk menginstal dependensi proyek serta persyaratan pengembangan dan pengujian.

Menggunakan alur kerja dengan pipdan file persyaratan berarti Anda mungkin memiliki satu requirements.txtfile, atau beberapa file persyaratan untuk lingkungan yang berbeda. Mungkin tidak jelas bagi kolega Anda apakah mereka harus menjalankan dev.txtatau local.txtketika mereka menjalankan proyek di laptop mereka, misalnya.

Ini juga dapat menimbulkan kebingungan ketika dua file persyaratan serupa menjadi sangat tidak sinkron satu sama lain: Sudah local.txtusang, atau apakah seharusnya sebegitu berbeda daridev.txt? Beberapa file persyaratan memerlukan lebih banyak konteks dan dokumentasi untuk memungkinkan orang lain menginstal dependensi dengan benar dan seperti yang diharapkan.

Alur kerja ini berpotensi membingungkan kolega dan meningkatkan beban pemeliharaan Anda.

Menggunakan Pipenv, yang memberi Anda Pipfile, memungkinkan Anda menghindari masalah ini dengan mengelola dependensi untuk lingkungan yang berbeda untuk Anda. Perintah ini akan menginstal dependensi proyek utama:

pipenv install

Menambahkan –devtag akan menginstal persyaratan dev / testing:

pipenv install –dev

Ada manfaat lain menggunakan Pipenv: Memiliki fitur keamanan yang lebih baik, membuat grafik dependensi Anda dalam format yang lebih mudah dipahami, menangani .envfile dengan mulus, dan secara otomatis dapat menangani dependensi yang berbeda untuk lingkungan pengembangan versus produksi dalam satu file. Anda dapat membaca lebih lanjut di dokumentasi.

Pipenv Beraksi

Dasar-dasar penggunaan Pipenv dirinci di bagian Mengelola Dependensi Aplikasi dari tutorial resmi pengemasan Python. Untuk menginstal Pipenv, gunakan pip:

pip install pipenv

Untuk menginstal paket yang akan digunakan dalam proyek Anda, ubah ke direktori proyek Anda. Kemudian untuk memasang sebuah paket (kita akan menggunakan Django sebagai contoh), jalankan:

pipenv install Django

Anda akan melihat beberapa output yang menunjukkan bahwa Pipenv sedang membuat Pipfileuntuk proyek Anda.

Jika Anda belum menggunakan lingkungan virtual, Anda juga akan melihat beberapa keluaran dari Pipenv yang mengatakan bahwa itu menciptakan lingkungan virtual untuk Anda.

Kemudian, Anda akan melihat output yang biasa Anda lihat saat menginstal paket.

Untuk menghasilkan Pipfile.lockfile, jalankan:

pipenv lock

Anda juga dapat menjalankan skrip Python dengan Pipenv. Untuk menjalankan skrip Python tingkat atas yang disebut hello.py, jalankan:

pipenv run python hello.py

Dan Anda akan melihat hasil yang Anda harapkan di konsol.

Untuk memulai shell, jalankan:

pipenv shell

Jika Anda ingin mengonversi proyek yang saat ini menggunakan requirements.txtfile untuk menggunakan Pipenv, instal Pipenv dan jalankan:

pipenv install requirements.txt

Ini akan membuat Pipfile dan menginstal persyaratan yang dzitentukan. Pertimbangkan proyek Anda ditingkatkan!

Mengapa Pengembang Python Harus Menggunakan Pipenv

Belajarlah Lagi

Lihat dokumentasi Pipenv, khususnya Penggunaan Dasar Pipenv, untuk membawa Anda lebih jauh. Pencipta Pipenv Kenneth Reitz memberikan ceramah tentang Pipenv, ” Masa Depan Manajemen Ketergantungan Python,” di acara PyTennessee baru-baru ini.

Pembicaraan itu tidak direkam, tetapi slide- nya sangat membantu dalam memahami apa yang dilakukan Pipenv dan masalah yang dipecahkannya.