- Birden fazla Python sürümü arasında kolayca geçiş yapmayı sağlar
- Basit, göze batmayan ve iyi çalışan tek amaçlı geleneksel UNIX araçları yaklaşımını izler
- Bu proje, rbenv ve ruby-build'den çatallanmış ve Python'a uyarlanmıştır
pyenv ne yapar
- Kullanıcı bazında genel Python sürümünü değiştirebilir.
- Proje bazında Python sürümü desteği sunar.
- Ortam değişkenleri kullanarak Python sürümünü geçersiz kılabilir.
- Aynı anda birden fazla Python komut sürümünde arama yapabilir. Bu, tox kullanarak Python sürümleri arasında test yapmak için yararlıdır.
pyenv ne yapmaz...
- Python'un kendisine bağımlı değildir. pyenv saf shell script ile yazılmıştır.
- Shell'e yüklenmek zorunda değildir. Bunun yerine,
PATH içine bir dizin ekleyen shim yaklaşımını kullanır.
- virtualenv yönetmez. Elbette kullanıcı doğrudan virtualenv oluşturabilir veya bunu otomatikleştirmek için pyenv-virtualenv kullanabilir.
Nasıl çalışır
- pyenv,
PATH içine enjekte edilen shim çalıştırılabilir dosyalarını kullanarak Python komutlarını yakalar, uygulamanın belirttiği Python sürümünü belirler ve ardından komutu ilgili Python kurulumuna iletir.
PATH'i anlamak
python veya pip gibi bir komutu çalıştırdığınızda, işletim sistemi PATH ortam değişkenindeki dizinler listesinde bu adda bir çalıştırılabilir dosya arar.
Shim'leri anlamak
- pyenv,
PATH'in en başına shims dizinini ekler. rehashing süreci sayesinde, kurulu tüm Python sürümlerindeki tüm Python komutları için shim'leri korur.
Python sürümü seçimini anlamak
- Bir shim çalıştırıldığında pyenv, kullanacağı Python sürümünü aşağıdaki kaynaklardan şu sırayla okur:
PYENV_VERSION ortam değişkeni (belirlenmişse).
- Geçerli dizindeki uygulamaya özel
.python-version dosyası (varsa).
- Dosya sisteminin köküne ulaşana kadar her üst dizin aranarak bulunan ilk
.python-version dosyası (varsa).
- Genel
$(pyenv root)/version dosyası.
Pyenv'in sağladığı Python kurulumunun yerini bulmak
- pyenv, belirlediği Python sürümüne göre komutu ilgili Python kurulumuna iletir.
- Her Python sürümü
$(pyenv root)/versions altında kendi dizinine kurulur.
Kullanım
Ek Python sürümleri kurma
pyenv install kullanarak ek Python sürümleri kurabilirsiniz.
En son sürümü otomatik çözümleme
uninstall dışındaki tüm Pyenv alt komutları, tam önekleri otomatik olarak en son sürüme çözümler.
Genişletilmiş destekli Python sürümleri
- Belirli ortamlarda destek eklemek için kullanıcı tarafından sağlanan yamaların uygulandığı Python sürümleri vardır.
Python sürümleri arasında geçiş yapma
- Pyenv'in kurduğu Python'u kullanmak için aşağıdaki komutlardan birini çalıştırın:
pyenv shell
pyenv local
pyenv global
Python sürümünü kaldırma
- Zamanla
$(pyenv root)/versions dizininde Python sürümleri birikir.
- Eski Python sürümlerini kaldırmak için
pyenv uninstall kullanın.
Diğer işlemler
- Mevcut tüm alt komutların listesini görmek için
pyenv commands çalıştırın.
pyenv'i kaldırma
- Pyenv'i geçici olarak devre dışı bırakmak veya sistemden kaldırmak kolaydır.
Pyenv eklentileri
- Eklentiler kullanarak Pyenv'in işlevlerini basit, esnek ve bakımı kolay bir şekilde genişletebilir ve özelleştirebilirsiniz.
Gelişmiş yapılandırma
- Pyenv'in davranışını kontrol eden ortam değişkenleri vardır.
Geliştirme
- Pyenv kaynak kodu GitHub'da barındırılır.
- Testler Bats kullanılarak çalıştırılır.
GN⁺ görüşü
- pyenv, farklı Python sürümlerini yönetmek için oldukça yararlı bir araçtır. Özellikle birden fazla projede farklı Python sürümleri kullanması gereken geliştiriciler için faydalıdır.
- Araç, Python'un kendisine bağımlı olmadan saf shell script olarak yazıldığı için, Python'un kurulu olmadığı sistemlerde bile kurulup yönetilebilir.
- pyenv, virtualenv'i doğrudan yönetmez; ancak pyenv-virtualenv eklentisi üzerinden virtualenv yönetimini otomatikleştirebildiği için kullanışlıdır.
- Kurulum ve kullanım görece basit olduğundan, Python sürüm yönetimine ihtiyaç duyan başlangıç seviyesindeki yazılım mühendisleri için de erişilebilirdir.
- pyenv'e benzer işlevler sunan diğer araçlardan biri
conda'dır; özellikle veri bilimi ve makine öğrenmesi alanlarında yaygın olarak kullanılır. conda, paket yönetimi ile ortam yönetimini birlikte sunduğu için bu tür işlevlere ihtiyaç duyan kullanıcılara önerilebilir.
- pyenv'i devreye alırken, sistemde birden fazla Python sürümü kuruluysa yol çakışmalarını önlemek için dikkatli olmak gerekir. pyenv'in sağladığı avantaj sürüm yönetimini kolaylaştırmasıdır; ancak hatalı yapılandırma sistemin varsayılan Python yolunu bozabilir.
7 yorum
condakonusunda dikkatli olun; belirli bir ölçeğin üzerindeki şirketlerdeücretlidir.
Şirket küçük olsa bile, ana yüklenicinin ölçeği büyükse teslim etmek zorlaşır.
Conda'nın kendisi BSD lisansıyla ücretsizdir ama depo ve paket lisanslarını dikkatle kontrol etmeniz gerekir.
asdf’yi en üstte ayarlayıp https://asdf-vm.com/Proje bazında da
localolarak yapılandırdığım oluyor, container da kullanıyorum...Yeni ortam kurma + yönetme için çok fazla şey çıktığı için pek kullanmıyorum galiba.. hahaha
Ben de tam olarak öyle kullanıyorum.
Haha, bana kalırsa pyenv biraz demode kalmış gibi geliyor.
rbenv, pyenv, nodenv gibi şeyler sürekli ortaya çıkınca, sonunda anyenv diye bir şey de çıktı. haha
https://github.com/anyenv/anyenv
Hacker News görüşleri
pyenv kullanımıyla ilgili uyarı
Python programcılarının çektiği sıkıntılar
Python programlarını kararlı tutan araçlar
Mise aracı tanıtımı
shimkullanmaz.ASDF'nin avantajları
pyenv kullanım deneyimi paylaşımı
python<version> -m venv /my/virtual/envile yönetmek daha kararlıdır.Kişisel Python yönetim yığını
.venvklasörü yok sayma listesine ekleniyor.Mise ile runtime bağımlılıklarını yönetme
macOS iş akışı paylaşımı
Sanırım burası gerçekten çok can yakan nokta.