Ruby'nin Bundler'ına veya Node's Npm'ye biraz aşinaysanız, bu dosyaların arkasındaki konsept basit ve mevcut diğer araçlara benzer. Pipenv
bu hedeflere ulaşmak için Pipfile ve Pipfile.lock dosyalarını kullanan bir paket ve sanal ortam yönetim aracıdır.
Pipenv, sanal ortamı sizin için varsayılan bir standart yolla yönetir (daha fazla etkinleştirmeye ve devre dışı bırakmaya gerek yoktur). Aşağıda, başlamanıza yardımcı olacak bazı temel bilgiler, pipenv web sitesinde daha fazlasını görün .
Başlangıç
Proje klasör türünüzde pipenv kullanmaya başlamak kolaydır ...
$ pipenv install
... ve zaten bir requirements.txt
dosyası varsa Pipfile
, gereksinimleri ve sanal ortam klasörünü içeren bir dosya oluşturacak , aksi takdirde boş bir Pipfile
dosya oluşturacaktır . Yüklediğiniz bir şeyden hoşlanmadıysanız veya fikrinizi değiştirdiyseniz, şunu yazın ...
$ pipenv uninstall <package>
... ve gitmekte fayda var. Pipenv'in halihazırda oluşturduğu sanal ortamı etkinleştirmek için ...
$ pipenv shell
... ve sanal ortamınız etkinleştirilecektir. Çevreyi terk etmek için ...
$ exit
... ve orijinal terminal oturumunuza geri döneceksiniz.
Pipfile
Pipfile dosya hem geliştirme ve yürütme için, Python uygulama veya kitaplık için paketler şartlarını belirlemek amaçlanmıştır. Bir paketi basitçe kullanarak kurabilirsiniz ...
$ pipenv install flask
... ve dağıtım ve yürütme için bir bağımlılık olarak veya kullanılarak eklenecektir ...
$ pipenv install --dev pytest
... ve geliştirme süresi için bir bağımlılık olarak kullanılacaktır. Dosya sözdizimi aşağıdaki gibi oldukça basittir.
[[source]] # Here goes your package sources (where you are downloading your packages from).
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages] # Here goes your package requirements for running the application and its versions (which packages you will use when running the application).
requests = "*"
flask = "*"
pandas = "*"
[dev-packages] # Here goes your package requirements for developing the application and its versions (which packaes you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
Pipfile.lock
Pipfile.lock içinde paketler mevcut dayalı, belirtmek için tasarlanmıştır Pipfile otomatik birbirine bağlıdır paketleri yükseltme ve proje bağımlılık ağacını kırma risklerinden kaçınma, bunların belirli sürümü kullanılmalıdır.
Şu anda kurulu paketlerinizi şunu kullanarak kilitleyebilirsiniz ...
$ pipenv lock
... ve araç, şu anda kurulu sürümlere göre sizin için otomatik olarak kilit dosyası oluşturmak için sanal ortam klasörünüzü arayacaktır. Dosya sözdizimi Pipfile için olduğu kadar açık değildir , bu nedenle kısalık uğruna burada gösterilmeyecektir.
Gemfile
veGemfile.lock
Yakut dünyadan:.lock
dosyası, her bağımlılık için özel versiyonları vardır; bu uzantıya sahip olmayan yalnızca insanların kontrol ettiği bilinen versiyonlara sahiptir. Bununla birlikte, hala gelişmekte olan ve iyi tanımlanmış, çok daha az standartlaştırılmış olmaktan çok uzak olan bir şeyin açıklamasını istemek, belki biraz erken.