Yazilim Program

Python Da Virtualenv Nasıl Kullanılır

Python Da Virtualenv ,Paket kurulumu söz konusu olduğunda iki felsefe vardır, ilk önce ve yerel ilk. Global anlam, belirli bir pakete dayanan tüm uygulamaların, bir kez kurulan kütüphanenin aynı kopyasına erişimi vardır. Yerel, her bir projenin bu proje için özel olarak kurulmuş bir bağımlı klasörüne sahip olduğu ve her kütüphanenin birçok kez yüklendiği anlamına gelir. NPM, örneğin, yerel ilk stratejiyi kullanır. Python’daki pip, varsayılan olarak küresel ilk stratejiyi kullanır.

Her iki yaklaşımın da faydaları ve dezavantajları vardır. Bu yazımda , sanal (yerel) python ortamları oluşturmak için virtualenv adlı bir Python kütüphanesinin nasıl kullanılacağını göstermek istedim .

Virtualenv yükleniyor

pip install virtualenv

Yeni bir sanal ortam oluştur

Projenin kurulmasını ve çalıştırılmasını istediğiniz klasöre gidin:

virtualenv any_name_you_want

Normalde, sadece benim python klasörümü ismimdeki gibi venvçalıştırırım:

virtualenv venv

Bu, yerel olarak kullanabileceğiniz piponun yanı sıra Python’u da kuracaktır.

Bu komutun sistem kurulumunuza bağlı olarak Python 2 veya Python 3’ü yükleyeceğini unutmayın. Benim durumumda Python 3’ü kurar.

Python 2’yi kullanmak isteseydim, kullanmak için Python sürümünün yolunu belirtebilirim.

$ which python2
/usr/local/bin/python2 # <------- Use this

$ virtualenv -p /usr/local/bin/python2 venv

Bu öğreticinin amacı için varsayılan Python 3 yüklemesine izin verelim.

Sanal Ortamı Etkinleştirme

Bu noktada, her zamanki modda Python’u kullanıyoruz ve koşmak pip installglobal olarak bir paket kuracak.

Etkinleştirme komutunu çalıştırarak sanal ortama “geçmeliyiz”:

source venv/bin/activate

Bu noktada oturumu yerel işaret edecek güncellenecek pythonve pipsizin gelen venvklasöründe.

Bunu çalıştırarak bunu doğrulayabilirsiniz:

(venv) $ which python
/someproject/venv/bin/python

(venv) $ which pip
/someproject/venv/bin/pip

which Python ve Pip’in yerel olarak çalıştığını gösterecek.

Sanal Ortamı Kullanma

Bu gerçekten bu. Artık işinizi sanal ortamda yapabilir ve kurulu olan pip installher şey yerel venvklasörünüzde görünür.

Örneğin Panda’ları kuralım.

(venv) $ pip install pandas
# ... pip magic

(venv) $ ls /someproject/venv/lib/python3.6/site-packages/ | grep pandas
pandas
pandas-0.23.4.dist-info

Sanal Ortamı Devre Dışı Bırakma

Yerel çevre ile işiniz bittiğinde deactivate, normal Python akışına geri dönmek için kabuğunuzda çalıştırın .

(venv) $ which python
/someproject/venv/bin/python

(venv) $ deactivate

$ which python
/usr/local/bin/python

Hepsini bir araya koy

$ git clone [email protected]:akras14/speech-to-text.git
$ cd speech-to-text/
$ ls
.                .gitignore       requirements.txt transcripts
..               README.md        slow.py          venv
.git             fast.py          source

$ cat .gitignore
api-key.json
parts/
venv

Yukarıda gördüğünüz gibi, .gitignoredosyamda venvklasörüme bir giriş var çünkü yerel bağımlılıklarımı kontrol etmek istemiyorum. venvBu klonlanmış repoda hiç klasör olmadığından, onu oluşturalım ve kaynak yapalım.

$ virtualenv venv
$ source venv/bin/activate

Bu noktada yerel olarak çalışıyorum pythonve pip. Devam edip tüm bağımlılıkları requirements.txtdosyadan kurtarayım.

$ pip install -r requirements.txt

Yükleme tamamlandıktan sonra, /speech-to-text/venv/lib/python3.6/site-packages/klasörüme yüklenmiş tüm gerekli paketleri göreceğim .

(venv) $ cat requirements.txt
google-api-python-client==1.6.4
httplib2==0.10.3
oauth2client==4.1.2
pyasn1==0.4.2
pyasn1-modules==0.2.1
rsa==3.4.2
six==1.11.0
SpeechRecognition==3.8.1
tqdm==4.19.5
uritemplate==3.0.0

(venv) $ ls venv/lib/python3.6/site-packages/
SpeechRecognition-3.8.1.dist-info oauth2client pyasn1_modules-0.2.1.dist-info tqdm
__pycache__ oauth2client-4.1.2.dist-info rsa tqdm-4.19.5.dist-info
apiclient pip rsa-3.4.2.dist-info uritemplate
easy_install.py pip-18.0.dist-info setuptools uritemplate-3.0.0.dist-info
google_api_python_client-1.6.4.dist-info pkg_resources setuptools-40.1.0.dist-info wheel
googleapiclient pyasn1 six-1.11.0.dist-info wheel-0.31.1.dist-info
httplib2 pyasn1-0.4.2.dist-info six.py
httplib2-0.10.3.dist-info pyasn1_modules speech_recognition

Bir yan not olarak, bağımlılıkları depolamak için requirements.txtbir pipsözleşmedir. NPM’deki gibi bir package.jsondosya türü .

pipfreezeProje için tüm bağımlılıkları listeleyecek bir komut var .

$ pip freeze
google-api-python-client==1.6.4
httplib2==0.10.3
oauth2client==4.1.2
pyasn1==0.4.2
pyasn1-modules==0.2.1
rsa==3.4.2
six==1.11.0
SpeechRecognition==3.8.1
tqdm==4.19.5
uritemplate==3.0.0

Proje bağımlılıklarını kaydetmek için, sonucu pip freezebir txt dosyasına yönlendirmeliyiz .

pip freeze > requirements.txt

Bu dosyayı kontrol etmek, bu projeyi kullanan bir sonraki kişinin yaptığımızla aynı bağımlılıklara sahip olmasını sağlayacaktır.

Her halükarda, artık bağımlılığımızın kurulu olduğu, repo programını yürütmeye hazırız. İşiniz bittiğinde, onu devre dışı bırakabilir veya basitçe bu kabuk oturumundan çıkabiliriz.

deactivate

Python’un virtualenv kullanmak çok basit ve etkilidir.

Bir önceki yazımız olan Çocuklar İçin En İyi Kodlama Uygulamaları başlıklı makalemizi de okumanızı öneririz.

Daha Fazla Göster

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı