Python 3.3+ için (yeni venv
yerleşik modülle)
Kısa Cevap (versiyondan bağımsız olarak):
- Sanal bir ortamı taşımanın temiz ve doğrudan bir yolu yoktur
- Sadece yeniden yaratın, çok kolay !!
Uzun cevap:
Python v3.3'ten itibaren, virtualenv
adında yerleşik bir modül haline geldi venv
.
--relocatable
Diğer yanıtlar sözü seçenek dahil edilmemiştir venv
ve şu anda hiçbir iyi, ben de yeniden adlandırma farkındayım veya bir Python sanal ortam taşınmaya bu güvenli yolu yoktur.
Bununla birlikte, mevcut tüm yüklü paketleriyle sanal bir ortamı yeniden oluşturmanın oldukça basit bir yolu vardır. Sanal bir ortamı yeniden oluşturma hakkında bilgi için bu yanıta bakın veya aşağıdaki bölüme bakın. Süreç boyunca yeni ortamı istediğiniz yerde ve istediğiniz isimle yeniden oluşturabilirsiniz. Veya işlem için aşağıdaki bölüme bakın.
Bu yanıtta, doğrudan yeniden adlandırmaları veya hareketleri destekleyebilecek birkaç başka üçüncü taraf paketinden bahsediyor. Bir sanal ortamı bozulmadan taşımak için bir yol bulmaya karar verirseniz, bunların da işe yarayıp yaramadığını araştırabilirsiniz venv
.
Not: Bu cevapta odaklanmak virtualenv
yerine üzerinde durulmaktadır venv
. Nasıl çevireceğinizi öğrenmek için aşağıya bakın.
venv
eski virtualenv
komut sözdizimine kıyasla
Kullanılacak komut venv
şudur:
python -m venv
virtualenv
orijinal pakette bir komut olarak yüklenmek yerine . "Python", python çalıştırılabilir dosyanızı nasıl çalıştırdığınızı ifade eder ve aşağıdakiler gibi çeşitli şeyler olabilir:
python
py
veya py -3.7
benzeri ( Python 3.3+ için Windows ve şu anda yalnızca Windows için Python Launcher )
python3
(python 2 ve 3'ü ikili olarak yükleyen linux ortamları için düzen)
- Sorun yaşıyorsanız, çalıştırmak istediğiniz python yürütülebilir dosyasının mutlak yolunu kullanın: örn.
c:\program files\python37\python.exe
Hangi sürümün çalıştırıldığından emin değilseniz, her zaman python --version
öğrenebilirsiniz.
Sanal bir ortam nasıl yeniden oluşturulur
Sanal bir ortam yaratmak / yeniden yaratmak kolaydır ve onlarla biraz çalıştıktan sonra ikinci doğa haline gelmelidir. Bu işlem, ilk yarıda betiğinizi bir paket olarak (bağımlılıkları ile birlikte) dağıtmak için ne yapacağınızı ve daha sonra daha fazla geliştirme için betiğinizi / paketinizi yüklemek için birinin ne yapacağını yansıtır.
İlk olarak, sanal ortamdakilerin güncellenmiş bir listesini alın. Etkin durumdayken, kullandığı Python sürümünü alın ve bağımlılıklar listesini bir dosyaya kaydedin.
python --version
Hangi Python sürümünü kullandığını görmek için etkinleştirilen sanal ortamla kullanın .
- Bu, açıklık sağlamak içindir - çeşitli nedenlerle Python sürümünü güncellemek isteyebilirsiniz - en azından en son yama sürümüne
- Örneğin, mevcut venv Python v3.7.4 kullanıyorsa, ancak şimdi v3.7.6 kullanım dışı ise - bunun yerine yalnızca kesintisiz güvenlik ve hata düzeltmelerini içermesi gereken v3.7.6'yı kullanın.
Kullanım python -m pip freeze > requirements.txt
akım paket bağımlılıkları listesini oluşturmak ve içine koydu requirements.txt
dosyası. Bu komut, Linux veya Git Bash'de kesinlikle çalışır - Windows'taki Powershell veya Komut Satırı hakkında% 100 emin değil.
Şimdi yeni bir sanal ortam oluşturun ve ardından bağımlılıkları eskisinden ekleyin.
Yeni venv'inizi yapın.
- Venv'e yüklemek istediğiniz doğru python sürümünü kullandığınızdan emin olun.
- Tam olarak aynı Python sürümü olmasını istiyorsanız:
- Python'u doğrudan mevcut sanal ortamdan çalıştırın (etkinleştirildiğinde) ve yalnızca
python
komut olarak kullanın
- Veya
python.exe
sanal ortam klasöründe ile mutlak bir yol kullanın
- Komuttaki yeni venv klasörü girişi için:
- İstenen son klasör konumuna mutlak veya göreceli bir yol ekleyin.
python -m venv my_new_venv
Geçerli çalışma dizininde yeni bir my_new_venv
klasörde yeni bir sanal ortam oluşturmak için kullanın .
- Venv klasörünün adı, venv'in adı olacaktır (etkinleştirildiğinde istemde görünen şey).
Bağımlılıklarınızı requirements.txt
dosyadan yükleyin .
python -m pip install -r requirements.txt
Geliştirme modunda olan yerel paketleri yeniden yüklemeniz gerekebilir.
Bir paketin kurulu olduğu belirli konumu görmeniz gerekirse şunu kullanın:
python -m pip list -v
-v
Veya "Ayrıntılı" seçeneği, yüklü yolu da dahil olmak üzere yüklü her paket, hakkında bazı ilave bilgiler ekleyecektir. Bu düz emin tutuyor sanal kullanıcı ve sistem yüklü paketleri yapmak yararlıdır.
Bu noktada eski venv klasörünü ve tüm içeriğini silebilirsiniz. Bunun için bir GUI kullanmanızı tavsiye ederim - dosya silme işlemleri genellikle linux komut satırından kalıcıdır ve küçük bir yazım hatası kötü haber olabilir.