virtualenv
örneğin projenizin bir alt dizininde özel bir Python yüklemesi oluşturmanıza olanak tanır. Böylece projelerinizin her biri kendi python
sanal ağı altında kendi (hatta birkaç tane) olabilir. Bazı sanal bilgisayarların aynı sürümde python
(örn. 2.7.16) çatışma olmadan bile olması gayet iyi - ayrı yaşıyorlar ve birbirlerini bilmiyorlar. Bunlardan herhangi birini kullanmak istiyorsanız python
, bunu yapmanız gerekir activate
( PATH
sanalenv bin/
dizininin önce gelmesini sağlamak için geçici olarak değiştirecek bir komut dosyası çalıştırarak ). Bu noktadan sonra, python
(veya pip
vb.) Çağrısı, siz sanallaşana kadar deactivate
(bu da geri yüklenir) sanalenv sürümünü çağırır PATH
.
pyenv
daha geniş bir ölçekte çalışır virtualenv
- Python kurulumlarının bir kaydını tutar (ve yenilerini yüklemek için kullanılabilir) ve python
komutu kullandığınızda hangi Python sürümünün çalıştırılacağını yapılandırmanıza izin verir . Kulağa benzer geliyor ama pratik kullanım biraz farklı. Şim python
betiğini PATH
(kalıcı olarak) başınıza ekleyerek ve ardından hangi "gerçek" in çağırılacağına karar vererek çalışır python
. Hatta pyenv'i sanal pyenv-virtualenv
eklenti pitonlarınızdan birine çağrılacak şekilde yapılandırabilirsiniz ( eklentiyi kullanarak ). Kullanarak yüklediğiniz Python sürümleri dizinine pyenv
gider $(pyenv root)/versions/
(varsayılan olarak, pyenv kökü ~ / .pyenv'dir), bu yüzden virtualenv'den daha 'global' dir. Normalde, yüklü Python sürümlerini çoğaltamazsınız pyenv
, en azından bunu yapmak ana fikir değildir.
Belirli bir Python sürümüne sahip bir sanal ağ oluşturmak için, söz konusu sürümün sisteminizde (ister açık ister kapalı olsun) bir yere sahip olması PATH
ve aslında yeni oluşturulan sanal ağınıza kopyalamanız gerekir. Tabii ki, belirli bir sürümü elde etmenin bir yolu onu yüklemek pyenv
. Bu yapıldıktan sonra, her bir sanal sanal veri farklı modüllerin (ya da bunların sürümlerinin) takılı olmasıyla ayrışmakta serbesttir.
Kısacası:
virtualenv
mevcut olanlardan klonlayarak yerel, bağımsız python kurulumları oluşturmanıza olanak tanır
pyenv
python'un farklı sürümlerini aynı anda (sistem çapında veya sadece yerel kullanıcı için) yüklemenize ve daha sonra belirli bir zamanda (virtualenv veya Anaconda tarafından oluşturulanlar da dahil olmak üzere) çok sayıda pitonun hangisinin çalıştırılacağını seçmenize olanak tanır