özet
Başa çıkacağınız üç genel modül kategorisi vardır:
- İşletim sistemi paket sistemine sahip tüm kullanıcılar için yüklü programları destekleyenler. (Bu, Python'da programlama yapan insanlar tarafından kullanılan araçları ve kütüphaneleri de içerebilir; aşağıya bakın.) Bunlar için yapabileceğiniz işletim sistemi paketlerini kullanır ve
pip
gerektiğinde sistem dizinlerine yüklersiniz.
- Belirli bir kullanıcı tarafından yalnızca kendi kullanımı için ve aynı zamanda Python'u "günlük" bir betik dili olarak kullanmasının belirli yönleri için kurulmuş programları destekleyenler. Bunlar için
pip --user
belki pyenv veya pythonz ve benzer araçlar ve taktikler kullanıyor.
- Belirli bir uygulamanın geliştirilmesini ve kullanılmasını destekleyenler. Bunlar için
virtualenv
(veya benzer bir araç) kullanıyorsunuz.
Buradaki her seviye bir önceki seviyeden de destek alıyor olabilir. Örneğin, (2) 'deki kullanıcımız, işletim sistemi paketleriyle yüklenen bir Python yorumlayıcısına güveniyor olabilir.
Buna biraz daha detaylı bir şekilde girmek:
Sistem Programları ve Paketleri
Python'da yazılmış "sadece çalıştırmak" istediğiniz programlar kolaydır: işletim sistemi yükleme araçlarını kullanın ve ihtiyaç duydukları her şeyi getirmelerini sağlayın; Python olmayan bir programdan farklı değildir. Makinenizdeki kullanıcıların güvenmeye başlayabileceği Python araçlarını / kütüphanelerini (Python yorumlayıcısının kendisi gibi!) Getirmesi olasıdır; Bu, bağımlılığı anladıkları ve ideal olarak, bu bağımlılıkları sağlamayan ev sahiplerinde kullanmanın alternatif yollarını bildikleri sürece bir sorun değildir.
Böyle bir bağımlılığın yaygın ve basit bir örneği, ~/.local/bin/
başlangıçtaki kişisel senaryolarımdan bazılarıdır #!/usr/bin/env python
. Bunlar, RH / CentOS 7 ve çoğu (hepsi değil) Ubuntu'nun kurduğu (Python 2 altında çalıştığı sürece) iyi çalışacak; temel bir Debian kurulumunda veya Windows'ta olmazlar. Kişisel ortamımın işletim sistemi paketlerine bağımlılığı çok fazla sevmemesi (bir dizi farklı işletim sistemi üzerinde çalışıyorum) gibi, oldukça kabul edilebilir buluyorum; Python sistemi bulunmayan ve elde edilemeyen nadir bulunan ana bilgisayarlardaki yedekleme planım, aşağıda açıklandığı gibi bir Kullanıcı sistemiyle gitmektir.
Sistem piton tercümanı kullanan kişiler de genellikle sisteme bağımlıdır pip3
. Bu, genellikle sistem bağımlılıklarımdaki çizgiyi çizdiğim yerle ilgilidir; her şeyden önce virtualenv
kendimle uğraşıyorum. (Örneğin benim standart etkinleştirmek komut ne olursa olsun dayanıyor pip3
veya pip
yolda olmakla kendi kopyasını indirir virtualenv
o yaratıyor sanal ortam bootstrap.
Bununla birlikte, bir geliştirme ortamından daha fazlasını elde etmenin makul derecede makul olduğu durumlar vardır. Sistemin sürümünü kullanmak istediğiniz Python arayüzleri (DBMS gibi) karmaşık paketlere sahip olabilir ve sistemin, konuşmak için kullanacağınız belirli Python kütüphane kodunu seçmesine izin vermenin en iyisi olduğunu düşünebilirsiniz. Veya bir Python sınıfı için temel geliştirme ortamına sahip birçok ana bilgisayarı dağıtabilir ve standart sistem paketleriyle otomatikleştirmenin en kolay yolunu bulabilirsiniz.
Kullanıcı "Günden Güne" Programlar ve Paketler
Kullanıcılar, sanal bir ortama tam olarak uymayan Python kitaplıklarına veya programlarına sahip olabilir, çünkü ilk başta sanal ortamlar oluşturmaya yardımcı olmak istiyorlar (örneğin, sanalenvwrapper ) veya komut satırından sıkça kullandığınız şeylerdir. Python dışı iş yapıyorum. Bunların sistem versiyonlarını kurma kabiliyetleri olsa bile, kendi kurulumlarını daha rahat hissedebilirler (örneğin, aracın en son versiyonunu ve bağımlılıklarını kullanmak istedikleri için).
Genellikle pip --user
insanlar bunun için kullanacaklardır, ancak Python yorumlayıcısının kendisi gibi bazı bağımlılıklar bundan biraz daha fazlasını gerektirir. pyenv ve pythonz , kişisel tercümanlar oluşturmak için kullanışlıdır ( ~/.local/bin
varsayılan tercüman olarak takılı olsun ya da olmasın ), ve elbette, kişi, kişi kitaplıkları mevcutsa her zaman kaynaktan "elle" inşa edebilir.
Burada kurulu minimum ürün setini tutmaya çalışıyorum: virtualenvwrapper (sürekli kullanıyorum çünkü) ve belki de en yeni pip sürümü. Birçok kütüphanede kullanılmak üzere yazdığım kişisel scriptler için standart kütüphane dışındaki veya Python 3'teki bağımlılıkları önlemeye çalışıyorum. (Bu kişisel senaryoların çoğunu Python'a taşırken ne kadar süre dayanabileceğimizi görelim.)
Ayrı Uygulama Geliştirme ve Çalışma Zamanı Ortamları
Bu her zamanki sanalenv olayıdır. Geliştirme için, sistem bağımlılıklarını kullanmadığınızdan emin olmak için neredeyse her zaman bir sanalenv kullanmalısınız ya da farklı Python sürümlerine karşı test etmek için birden fazla kullanmalısınız.
Bu sanal ortamlar, kullanıcı ortamınızı kirletmekten kaçınmak istediğiniz birçok bağımlılığı olan uygulamalar için de iyidir. Örneğin, genellikle Jupyter notebook ve benzerlerini çalıştırmak için sanal bir aygıt kurdum .