Hãy thể hiện sự đơn giản và cập nhật cách tiêu chuẩn để tạo ra một gói python cho python 2.xLàm thế nào để tạo ra một gói 2.x python - trường hợp đơn giản
Tôi muốn sử dụng pip cho việc cài đặt các gói một lát sau.
Các gói phần mềm nên chứa một lớp duy nhất:
class hello:
def greet(self):
print "hello"
Một sẽ có thể làm như sau sau:
pip install my_package-0.1.1....
Và sau đó sử dụng nó:
from my_package import hello
h = hello.hello()
h.greet()
Những gì tôi đang yêu cầu là:
- Các thư mục và file layout
- Nội dung các tập tin
- lệnh để tạo ra các tập tin gói chia
- lệnh để cài đặt các gói từ tập tin gói chia (sử dụng tốt nhất pip)
Có là một số howtos mà tôi tìm thấy nhưng tôi vẫn không chắc chắn cách thức này rất đơn giản và bị tước bỏ trường hợp (không có gói lồng nhau, loại bỏ tất cả các tệp và tính năng có thể bỏ qua cho trường hợp đơn giản nhất) sẽ được xử lý và đó là cách hiện đại để làm điều đó.
Tôi muốn câu hỏi này được đưa vào trạng thái wiki cộng đồng, vì vậy bạn sẽ không nhận được bất kỳ điểm nào và tôi sẽ dành đủ thời gian và đánh dấu câu trả lời được chấp nhận sau vài ngày.
Edit:
Tôi có một ví dụ chạy đầu tiên mà tôi muốn chia sẻ, tôi đã sử dụng câu trả lời Marius Gedminas cho nó. Nó không chứa mọi thứ cần có, nhưng nó hoạt động, vì vậy nó có thể chứng minh cốt lõi của quy trình kỹ thuật. Để thêm các phần cần thiết, vui lòng đọc câu trả lời của Marius bên dưới.
Cấu trúc thư mục:
MyProject/
setup.py
my_package.py
README.txt
MANIFEST.in
setup.py:
from setuptools.import setup
setup(name='MyProject',
version='0.1',
py_modules=['my_package'])
my_package.py:
class hello:
def greet(self):
print "hello"
MANIFEST.in:
include *.txt
Để tạo các gói từ thư mục này, đi vào MyProject thư mục và chạy:
$ python setup.py sdist
Điều này sẽ tạo ra một file MyProject-0.1.tar.gz
trong một thư mục con dist/
. Sao chép tệp này vào một thư mục trên máy mục tiêu.
Trên máy mục tiêu chạy lệnh này trong thư mục chứa MyProject-0.1.tar.gz
:
sudo pip install MyProject-0.1.tar.gz
Nó có thể là cần thiết để đăng xuất và đăng nhập lại trên máy mục tiêu bây giờ, vì vậy các gói sẽ được tìm thấy. Sau đó bạn có thể kiểm tra các gói trên máy mục tiêu bằng cách sử dụng vỏ python:
$ python
>>> import my_package
>>> h = my_package.hello()
>>> h.greet()
hello
>>>
Một khi điều này các công trình vui lòng nhớ thêm các nội dung cần thiết khác, xem câu trả lời Marius của bên dưới.
Mấu chốt của câu hỏi này là để chọn một cách tiếp cận hiện đại và sau đó loại bỏ gần như tất cả mọi thứ có thể bị tước để nó vẫn hoạt động. – mit