Setara dengan maven untuk python [ditutup]

146

Saya pemula pengembang / python java, dan saya kehilangan fitur pakar, terutama manajemen dependensi dan otomatisasi bangun (maksud saya Anda tidak membangun, tetapi bagaimana membuat paket untuk penerapan?)

Apakah ada python yang setara untuk mencapai fitur ini?
Catatan: Saya menggunakan python 2.x

Terima kasih.

Enno Shioji
sumber

Jawaban:

70

Python menggunakan distutils dan setuptools untuk dependensi dan pengemasan.

Inilah tutorial yang menjelaskan dasar-dasar: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Singkatnya, Anda akan memiliki file setup.py, yang memiliki ketergantungan dan informasi kompilasi / instalasi skrip, dan Anda dapat membuat telur, bola tar dist, bola biner biner, dll.

Daniel Kluev
sumber
6
Karena Mark Pilgrim yang sangat tersisih secara elektrik menutup situs itu, di sini ada cermin di aktivasi .
jiggy
2
Saya akan merekomendasikan memperbarui ini untuk menunjuk ke Panduan Pengguna Kemasan Python karena ini adalah panduan resmi sekarang.
kojiro
38

Tidak ada pertandingan langsung. Namun, terdekat yang bisa Anda dapatkan:

  • zc.buildout : Ia dapat mengatur lingkungan tertutup, mengunduh / menangani dependensi, menginisialisasi skrip, dll. Ini juga dibangun di atas plugin (atau "resep", sebagaimana mereka menyebutnya). Saya menggunakannya beberapa tahun lalu ketika masih dalam tahap beta, mungkin sudah berevolusi sejak saat itu. Ada kurva belajar, seperti halnya Maven, tetapi juga yang paling kuat.

Penawaran lainnya adalah himpunan bagian dari Maven / zc.buildout:

Anda mungkin tahu Ant dan shell scripting, jadi Anda bisa memeriksa juga alat Python ini:

  • Fabric atau Paver : pelari tugas baris perintah dengan tambahan rasa. Mereka membungkus eksekusi baris perintah tradisional Anda dengan python, dan memungkinkan untuk mengelola berbagai tugas dengan cara yang lebih kuat (dependensi tugas, menafsirkan output, menjalankan perintah di server jauh, dll.) Pada dasarnya tidak ada yang tidak bisa Anda lakukan dengan skrip shell, tetapi dalam python, itu jauh lebih samar.
Tuukka Mustonen
sumber
14

Saya ingin menunjukkan PyBuilder yang sangat terinspirasi oleh pakar tetapi menggunakan python bukan XML untuk konfigurasi, jadi itu sebenarnya bisa dibaca, IMHO.

Ada plugin untuk manajemen dependensi (menggunakan pip di bawah tenda dan membedakan antara dependensi build dan runtime) dan, tidak seperti maven, Anda dapat menjalankan siklus build penuh dengan satu perintah.

pengguna245678
sumber
9

Untuk penyebaran, selain distutils / setuptoos, lihat juga paket pip (menggunakan setuptools di bawahnya). Itu dapat mengembalikan instalasi yang gagal dan juga menghapus (sesuatu yang hilang dari easy_install / setuptools). Selain itu, Anda dapat menentukan dependensi melalui file teks persyaratan.

ars
sumber
6

Ada baiknya menggunakan virtualenv untuk membuat lingkungan proyek mandiri dan menggunakan pip / easy_install untuk dependensi manajemen.

Ning Sun
sumber
7
Itu menyedihkan
:)