2009-04-22 26 views
10

Lệnh "python setup.py some_incantation_here" ma thuật là gì để tải gói lên PyPI, trong biểu mẫu có thể tải xuống để nhận gói ban đầu ở dạng ban đầu?Cách tải gói Python nguyên sơ lên ​​PyPI?

Tôi có một gói với một số nguồn và một vài tệp hình ảnh (dưới dạng gói_data). Nếu tôi làm "setup.py sdist register upload", .tar.gz có các tệp hình ảnh bị loại trừ. Nếu tôi làm "setup.py bdist_egg register upload", trứng chứa các hình ảnh nhưng không bao gồm tệp setup.py. Tôi muốn có thể tải tệp lên toàn bộ dự án của tôi - còn gọi là "setup.py the_whole_freaking_thing register upload".

Có lẽ cách tốt nhất để làm điều này là tự tar.gz thư mục dự án của tôi và tải nó lên bằng giao diện web PyPI?

Lưu ý: Tôi đang cố gắng tránh phải lưu trữ một dự án đơn giản mà tôi vừa tạo trong repo SVN cũng như trên PyPI - có vẻ như lãng phí công việc để theo dõi lịch sử và tệp của nó ở hai nơi .

Trả lời

16

Khi bạn thực hiện lệnh "sdist", thì điều khiển danh sách các tệp được bao gồm là tệp "MANIFEST.in" của bạn bên cạnh "setup.py", không phải bất kỳ tệp nào bạn đã liệt kê trong "package_data". Điều này có liên quan đến tính chất tâm thần phân liệt của các giải pháp đóng gói Python ngày nay; "sdist" được cung cấp bởi distutils trong thư viện chuẩn, trong khi "bdist_egg" được điều khiển bởi mô-đun setuptools.

Để giải quyết vấn đề, hãy thử tạo một MANIFEST.in bên cạnh tập tin setup.py của bạn, và cung cấp cho nó nội dung như thế này:

include *.jpg 

Tất nhiên, tôi là hình ảnh mà bạn "tập tin hình ảnh" là hình ảnh thực tế hơn là hình ảnh đĩa hoặc hình ảnh ISO hoặc một cái gì đó; bạn có thể phải điều chỉnh dòng trên nếu tôi đã đoán sai! Nhưng hãy xem phần Specifying which files to distribute của tài liệu về phân đoạn và xem bạn có thể không nhận được những tệp đó xuất hiện trong bản phân phối nguồn .tar.gz của bạn hay không! Chúc may mắn.

+0

Hoàn hảo! "bao gồm nosenotify/*. png" là định dạng mà tôi cần, vì các tệp của tôi nằm trong thư mục con - định dạng này đảm bảo rằng thư mục .tar.gz nosenotify/chứa các tệp .png của nó. –

+2

PS Brandon, trớ trêu thay sau khi đọc câu trả lời của bạn Tôi đã đi đến blog của bạn và nhìn thấy bài viết từ một ngày trước câu hỏi của tôi, nói rằng bạn đã chán ngấy với setup.py rằng bạn đang tạo ra pyron. :) –

Các vấn đề liên quan