Maven tương đương với python [đã đóng]


146

Tôi là người mới bắt đầu phát triển java / python và tôi thiếu các tính năng maven của mình, đặc biệt là quản lý phụ thuộc và tự động hóa xây dựng (ý tôi là bạn không xây dựng, nhưng làm cách nào để tạo gói để triển khai?)

Có một con trăn tương đương để đạt được các tính năng này?
Lưu ý: Tôi sử dụng python 2.x

Cảm ơn.

Câu trả lời:


70

Python sử dụng distutils và setuptools cho sự phụ thuộc và đóng gói.

Đây là một hướng dẫn giải thích những điều cơ bản: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Nói tóm lại, bạn sẽ có tệp setup.py, có thông tin cài đặt / biên dịch tập tin phụ thuộc và tập lệnh, và bạn có thể tạo trứng, dist tarball, tarball nhị phân, v.v.


6
Kể từ khi điện rời đắt Mark Pilgrim đóng cửa trang web đó, đây là gương tại ActiveState .
nhảy lên

2
Tôi khuyên bạn nên cập nhật phần này để trỏ đến Hướng dẫn sử dụng bao bì Python vì đây là hướng dẫn có thẩm quyền.
kojiro

38

Không có trận đấu trực tiếp. Tuy nhiên, gần nhất bạn có thể nhận được:

  • zc.buildout : Nó có thể thiết lập các môi trường đóng, tải xuống / xử lý các phụ thuộc, khởi tạo tập lệnh, v.v. Nó cũng được xây dựng trên các plugin (hoặc "công thức nấu ăn", khi họ gọi chúng). Tôi đã sử dụng nó một vài năm trước khi nó đang ở giai đoạn beta, có lẽ nó đã phát triển kể từ đó. Có đường cong học tập, như với Maven, nhưng nó cũng mạnh nhất.

Các dịch vụ khác là các tập hợp con của Maven / zc.buildout:

Bạn có thể biết kịch bản Ant và shell, vì vậy bạn cũng có thể kiểm tra các công cụ Python này:

  • Fabric hoặc Paver : người chạy tác vụ dòng lệnh với các hương vị được thêm vào. Chúng bao bọc thực thi dòng lệnh truyền thống của bạn trong python và cho phép quản lý các tác vụ khác nhau theo cách mạnh mẽ hơn (phụ thuộc nhiệm vụ, giải thích đầu ra, chạy các lệnh trong máy chủ từ xa, v.v.). Về cơ bản không có gì bạn không thể làm với kịch bản shell, nhưng trong python, nó ít khó hiểu hơn.

14

Tôi muốn chỉ ra PyBuilder lấy cảm hứng từ maven nhưng sử dụng python thay vì XML để cấu hình, vì vậy nó thực sự có thể đọc được, IMHO.

Có một plugin để quản lý phụ thuộc (sử dụng pip dưới mui xe và phân biệt giữa phụ thuộc xây dựng và thời gian chạy) và, không giống như maven, bạn có thể chạy qua vòng đời xây dựng đầy đủ chỉ bằng một lệnh.


9

Để triển khai, ngoài distutils / setuptoos, hãy xem gói pip (sử dụng setuptools bên dưới). Nó có thể khôi phục các cài đặt không thành công và cũng có thể gỡ cài đặt (thiếu một cái gì đó từ easy_install / setuptools). Ngoài ra, bạn có thể chỉ định các phụ thuộc thông qua tệp văn bản yêu cầu.


6

Thật tốt khi sử dụng virtualenv để tạo môi trường dự án độc lập và sử dụng pip / easy_install để quản lý các phụ thuộc.


7
Điều đó thật đáng buồn :)
Gayan Weerakutti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.