Python için Maven eşdeğeri [kapalı]


152

Ben bir java geliştiricisi / python acemisiyim ve maven özelliklerimi, özellikle de bağımlılık yönetimi ve derleme otomasyonunu özlüyorum (yani siz oluşturmuyorsunuz, ancak dağıtım için bir paket nasıl oluşturulur?)

Bu özelliklere ulaşmak için bir python eşdeğeri var mı?
Not: python 2.x kullanıyorum

Teşekkürler.

Yanıtlar:


73

Python, bağımlılık ve paketleme için dağıtımları ve kurulum araçlarını kullanır.

Temel bilgileri açıklayan bir öğretici burada: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Kısaca, bağımlılık ve betik derleme / kurulum bilgisine sahip olan setup.py dosyasına sahip olacaksınız ve bununla yumurta, uzak tarball, ikili tarball vb. Oluşturabilirsiniz.


6
Elektrikten çok ayrılan Mark Pilgrim o siteyi kapattığı için, işte aktif konumdaki ayna .
jiggy

2
Şimdi yetkili kılavuz olduğu için bunu Python Paketleme Kullanım Kılavuzu'na işaret edecek şekilde güncellemenizi tavsiye ederim .
kojiro

38

Doğrudan eşleşme yoktur. Ancak, alabileceğiniz en yakın şey:

  • zc.buildout : Kapalı ortamlar kurabilir, bağımlılıkları indirebilir / idare edebilir, komut dosyalarını başlatabilir , vb. Ayrıca eklentiler (veya onlara dedikleri adıyla "tarifler") üzerine kurulur . Birkaç yıl önce beta aşamasındayken kullandım, muhtemelen o zamandan beri gelişti. Maven'de olduğu gibi bir öğrenme eğrisi var, ama aynı zamanda en güçlüsü.

Diğer teklifler Maven / zc.buildout'un alt kümeleridir:

Muhtemelen Ant ve kabuk komut dosyalarını biliyorsunuzdur, bu yüzden şu Python araçlarını da kontrol edebilirsiniz:

  • Fabric veya Paver : ilave tatlara sahip komut satırı görev koşucuları. Geleneksel komut satırı yürütmenizi python ile sararlar ve çeşitli görevleri daha güçlü bir şekilde yönetmenize izin verir (görev bağımlılıkları, çıktıyı yorumlama, uzak sunucuda komut çalıştırma, vb.). Temelde kabuk komut dosyasıyla yapamayacağınız hiçbir şey yok, ancak python'da çok daha az şifreli.

15

Maven'den büyük ölçüde ilham alan, ancak yapılandırma için XML yerine python kullanan PyBuilder'ı belirtmek isterim , bu yüzden aslında okunabilir, IMHO.

Bağımlılık yönetimi için bir eklenti vardır (başlık altında pip kullanır ve derleme ve çalışma zamanı bağımlılıklarını ayırt eder) ve maven'den farklı olarak, tek bir komutla tüm yapı yaşam döngüsünü çalıştırabilirsiniz.


9

Dağıtım için, dağıtımlara / kurulumlara ek olarak pip paketine de bakın (altında kurulum araçlarını kullanır). Başarısız kurulumları geri alabilir ve ayrıca kaldırabilir (easy_install / setuptools'da eksik olan bir şey). Ek olarak, bir gereksinimler metin dosyası aracılığıyla bağımlılıkları belirtebilirsiniz.


6

Bağımsız proje ortamı oluşturmak için virtualenv kullanmak ve yönetim bağımlılıkları için pip / easy_install kullanmak iyidir.


7
Bu üzücü
:)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.