Saya seorang programmer ruby yang mencoba belajar python. Saya keluarga yang cantik dengan pyenv karena ini seperti copy dan paste dari rbenv. Pyenv membantu memungkinkan memiliki lebih dari satu versi python dalam suatu sistem dan juga mengisolasi python tanpa menyentuh bagian sensitif dari sistem.
Saya kira setiap instalasi python datang dengan paket pip. Yang masih belum saya mengerti adalah, ada banyak python libs di luar sana yang menyarankan untuk menggunakan virtualenv dan anaconda ini. Saya bahkan dapat menemukan plugin virtualenv untuk pyenv.
Sekarang saya semakin bingung dengan tujuan dari kedua pyenv dan virtualenv ini. lebih buruk di dalam pyenv ada plugin virtualenv.
pertanyaan saya adalah:
- Apa perbedaan antara pyenv dan virtualenv?
- Apakah ada perbedaan dalam menggunakan perintah pip di dalam pyenv dan virtualenv?
- apa yang dilakukan pyenv virutalenv ini?
penjelasan Anda dengan contoh akan sangat dihargai.
Jawaban:
Sunting: Layak disebutkan di
pip
sini juga,conda
sertapip
memiliki persamaan dan perbedaan yang relevan dengan topik ini .pip: Pengelola Paket Python.
pip
sebagai python yang setara dengangem
perintah rubypip
tidak disertakan dengan python secara default.brew install python
sudo easy_install pip
gemfile
pip freeze > requirements.txt
pyenv: Pengelola Versi Python
pyenv
memungkinkan Anda mengelola ini dengan mudah.virtualenv: Pengelola Lingkungan Python.
virtualenv
, cukup panggilvirtualenv ENV
, di manaENV
adalah direktori untuk menempatkan lingkungan virtual baru.virtualenv
, Anda perlusource ENV/bin/activate
. Untuk berhenti menggunakan, cukup panggildeactivate
.virtualenv
, Anda mungkin menginstal semua persyaratan paket ruang kerja dengan menjalankan filepip install -r
proyekrequirements.txt
.Anaconda: Manajer Paket + Manajer Lingkungan + Perpustakaan Ilmiah Tambahan.
conda install <packagename>
miniconda
versi yang lebih ramping , yang sepertinya bisa menjadi opsi yang lebih sederhana daripada menggunakanpip
+virtualenv
, meskipun saya tidak memiliki pengalaman menggunakannya secara pribadi.conda
memungkinkan Anda untuk menginstal paket, paket ini terpisah dari paket PyPI, jadi Anda mungkin masih perlu menggunakan pip sebagai tambahan tergantung pada jenis paket yang perlu Anda instal.Lihat juga:
sumber
Analogi sederhana:
Karena saya menggunakan python3, saya lebih suka lingkungan virtual built-in python3 bernama venv . venv sederhana dan mudah digunakan. Saya akan merekomendasikan Anda untuk membaca dokumen resminya. Dokumennya pendek dan ringkas.
Di ruby, kami tidak benar-benar membutuhkan lingkungan virtual karena bundler mengurusnya. Baik virtual env dan bundler sangat bagus, namun, mereka memiliki solusi berbeda untuk menyelesaikan masalah yang sama.
sumber