Python 3.3+ için (yeni venvyerleş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, virtualenvadında yerleşik bir modül haline geldi venv.
--relocatableDiğer yanıtlar sözü seçenek dahil edilmemiştir venvve ş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 virtualenvyerine üzerinde durulmaktadır venv. Nasıl çevireceğinizi öğrenmek için aşağıya bakın.
venveski virtualenvkomut sözdizimine kıyasla
Kullanılacak komut venvşudur:
python -m venv
virtualenvorijinal 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
pyveya py -3.7benzeri ( 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 --versionHangi 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.txtakım paket bağımlılıkları listesini oluşturmak ve içine koydu requirements.txtdosyası. 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
pythonkomut olarak kullanın
- Veya
python.exesanal 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_venvGeçerli çalışma dizininde yeni bir my_new_venvklasö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.txtdosyadan 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
-vVeya "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.