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 install
global 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 python
ve pip
sizin gelen venv
klasö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 install
her şey yerel venv
klasö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 git@github.com: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, .gitignore
dosyamda venv
klasörüme bir giriş var çünkü yerel bağımlılıklarımı kontrol etmek istemiyorum. venv
Bu 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 python
ve pip
. Devam edip tüm bağımlılıkları requirements.txt
dosyadan 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.txt
bir pip
sözleşmedir. NPM’deki gibi bir package.json
dosya türü .
pip
freeze
Proje 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 freeze
bir 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.