Python

Lingkungan Virtual dengan Python 3

Lingkungan Virtual dengan Python 3
Seperti kebanyakan orang, saya benci menginstal paket yang tidak perlu di workstation saya. Setelah Anda selesai menggunakannya, mencopot pemasangannya tidak pernah cukup. Paket meninggalkan banyak folder dan file. Mereka membutuhkan banyak paket (tidak jelas) lainnya yang juga tertinggal setelah beberapa hal. Perlahan tapi pasti hal-hal ini menumpuk di workstation Anda dan meskipun mereka mungkin tidak menghabiskan sebagian besar ruang disk Anda, mereka dapat menyebabkan masalah lain.

Dependensi Lama Old

Paket lama mungkin tertinggal dan kode Python Anda akan dengan senang hati menggunakannya. Ini bukan masalah jika skrip Python Anda dimaksudkan untuk berjalan secara lokal, dan bukan untuk keperluan industri. Ilmuwan data, pelajar, dan bahkan orang biasa yang mengotomatiskan tugas sehari-hari mereka dapat terus menggunakan paket yang lebih lama tanpa banyak masalah.

Masalahnya dimulai ketika Anda mengirimkan kode Anda ke produksi. Ketika Anda melakukannya, kemungkinan Anda hanya akan mengirim skrip utama Anda dan tidak semua dependensi paket package. Misalnya, jika Anda telah menulis layanan mikro untuk dikirimkan sebagai fungsi AWS Lambda, beberapa baris pertama mungkin mengimpor modul permintaan seperti ini:

permintaan impor

Paket permintaan yang disediakan oleh AWS lambda akan berbeda dari paket lama Anda dan akibatnya program mungkin macet.

Konflik

Konflik mungkin juga muncul di mana proyek yang berbeda menggunakan versi yang berbeda dari paket yang sama. Mungkin beberapa proyek lama Anda memerlukan paket pip yang lebih lama. Tetapi Anda mungkin memerlukan paket yang lebih baru untuk proyek lain. Menjalankan pip install -U akan memutakhirkan paket di seluruh OS Anda yang menyebabkan masalah saat Anda kembali mempertahankan proyek lama Anda.

Lingkungan Virtual Python

Jika Anda menggunakan versi Python di atas 3.5, Anda dapat menggunakan modul built-in yang disebut venv untuk membuat apa yang disebut Python Virtual Environments. Apa yang dilakukan modul ini adalah membuat folder atau direktori terisolasi di mana semua paket pip Anda dan dependensi lainnya dapat hidup. Folder itu juga berisi skrip 'aktifkan' di dalamnya. Kapan pun Anda ingin menggunakan lingkungan virtual tertentu,  Anda cukup menjalankan skrip ini dan setelah itu hanya paket yang terdapat dalam folder ini yang dapat diakses. Jika Anda menjalankan pip install, paket akan diinstal di dalam folder ini dan tidak di tempat lain. Setelah Anda selesai menggunakan suatu lingkungan, Anda cukup 'menonaktifkannya' dan kemudian hanya paket pip global yang akan tersedia untuk Anda.

Jika Anda menggunakan Ubuntu 18.04 dan di atasnya, Anda bahkan tidak perlu menginstal manajer paket pip di seluruh sistem Anda. Pip hanya bisa ada di dalam lingkungan virtual Anda jika Anda lebih suka seperti itu.

Menginstal venv dan Membuat Lingkungan Virtual

Ubuntu 18.04 LTS keluar dari kotak dengan Python 3.6.x, tetapi modul Python venv tidak diinstal, begitu juga pip. Mari kita instal hanya venv.

$ apt install python3-venv

Selanjutnya, kita pergi ke direktori di mana Anda ingin direktori Lingkungan Virtual Anda dibuat. Bagi saya itu adalah ~/project1

$ cd ~/proyek1

Buat venv Anda dengan perintah berikut, perhatikan my-env hanyalah nama lingkungan itu, Anda dapat memberi nama apa pun yang Anda inginkan:

$ python3 -m venv my-env

Catatan: Beberapa instalasi Python3, seperti yang tersedia di Windows, Anda memanggil juru bahasa Python hanya menggunakan python dan bukan python3, tetapi itu berubah dari sistem ke sistem. Demi konsistensi saya hanya akan menggunakan python3.

Setelah perintah selesai dieksekusi, Anda akan melihat folder baru ~/project1/my-evn. Untuk mengaktifkan lingkungan virtual my-env, Anda harus:

  1. Lari,
    $source ~/project1/my-env/bin/activate jika Anda menggunakan Bash.
    Ada skrip alternatif yang disebut aktifkan.ikan dan aktifkan.csh untuk orang yang menggunakan kerang ikan dan csh, masing-masing.
  2. Di Windows, skrip dapat dipanggil dengan menjalankan:
    >.\my-env\Scripts\mengaktifkan.kelelawar jika Anda menggunakan command prompt, atau,
    >.\my-env\Scripts\mengaktifkan.ps1 jika Anda menggunakan PowerShell.

Menggunakan Lingkungan Virtual

Setelah Anda berhasil menjalankan skrip, Anda akan melihat bahwa prompt berubah menjadi sesuatu seperti yang ditunjukkan di bawah ini, Anda sekarang dapat menginstal paket menggunakan pip:

(my-env) $ pip3 permintaan pemasangan
## Kami dapat membuat daftar paket yang diinstal menggunakan perintah 'pip freeze'
(my-env) $ pip3 membeku
sertifikat == 2018.10.15
chardet == 3.0.4
idna==2.7
pkg-sumber daya==0.0.0
permintaan==2.20.1
urllib3==1.24.1

Selama lingkungan virtual aktif (seperti yang ditunjukkan oleh prompt) semua paket akan disimpan hanya di direktori lingkungan virtual (my-env), di mana pun Anda berada di sistem file.

Untuk keluar dari lingkungan virtual, Anda dapat mengetik deactivate ke prompt dan Anda akan kembali menggunakan instalasi Python di seluruh sistem. Anda dapat melihat bahwa paket baru yang baru saja kita instal tidak akan ditampilkan di instalasi pip global.

Untuk menghilangkan lingkungan virtual, cukup hapus folder my-env yang dibuat setelah menjalankan modul. Anda dapat membuat sebanyak mungkin lingkungan ini sesuka Anda.

Kesimpulan

Dengan modul venv, lingkungan virtual sekarang tersedia sebagai fitur standar Python, terutama jika Anda menginstal dari Python.organisasi. Sebelumnya, kami dulu memiliki banyak implementasi pihak ketiga yang disebut virtualenv, pyenv, dll.

Ini memunculkan semakin banyak perangkat lunak yang membengkak seperti Anaconda, terutama populer di kalangan ilmuwan data. Adalah baik untuk akhirnya memiliki alat sederhana untuk mengelola paket Python tanpa harus menginstal banyak sampah lain yang tidak terkait. Anda dapat membaca lebih lanjut tentang venv di sini.

Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...