Đây là một ví dụ tối thiểu tuyệt đối, hiển thị các bước cơ bản để chuẩn bị và tải gói của bạn lên PyPI bằng cách sử dụng
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
2 và .
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
3Điều này không có nghĩa là thay thế cho việc đọc ít nhất là hướng dẫn, có nhiều thứ hơn là được trình bày trong ví dụ rất cơ bản này
Bản thân việc tạo gói đã được bao gồm trong các câu trả lời khác ở đây, vì vậy, hãy giả sử rằng chúng ta có bước đó và cấu trúc dự án của chúng ta như thế này
.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
Để sử dụng
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
2 để đóng gói, chúng tôi cần thêm một tệp .
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
5, tệp này sẽ được đưa vào thư mục gốc của dự án của chúng tôi.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
Ở mức tối thiểu, chúng tôi chỉ định siêu dữ liệu cho gói của mình,
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
5 của chúng tôi sẽ trông như thế nàyfrom setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
Vì chúng tôi đã đặt
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
7, nên chúng tôi bao gồm một bản sao trong dự án của mình là .
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
8, cùng với tệp readme trong reStructuredText là .
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
9.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
1Tại thời điểm này, chúng tôi đã sẵn sàng để bắt đầu đóng gói bằng cách sử dụng
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
2, nếu chúng tôi chưa cài đặt nó, chúng tôi có thể cài đặt nó với from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
1.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
4Để làm điều đó và tạo một
from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
2, tại thư mục gốc của dự án, chúng tôi gọi .
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
5 từ dòng lệnh, chỉ định rằng chúng tôi muốn from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
4.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
8Điều này sẽ tạo gói phân phối và thông tin về trứng của chúng tôi và dẫn đến cấu trúc thư mục như thế này, với gói của chúng tôi trong
from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
5.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
0Tại thời điểm này, chúng tôi có một gói mà chúng tôi có thể cài đặt bằng cách sử dụng
from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
1, do đó, từ gốc dự án của chúng tôi [giả sử bạn có tất cả cách đặt tên như trong ví dụ này].
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
2Nếu mọi việc suôn sẻ, bây giờ chúng ta có thể mở trình thông dịch Python, tôi sẽ nói ở đâu đó bên ngoài thư mục dự án của chúng ta để tránh mọi nhầm lẫn và thử sử dụng gói mới sáng bóng của chúng ta
.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
3Bây giờ chúng tôi đã xác nhận gói cài đặt và hoạt động, chúng tôi có thể tải nó lên PyPI
Vì chúng tôi không muốn làm ô nhiễm kho lưu trữ trực tiếp bằng các thử nghiệm của mình, chúng tôi tạo một tài khoản cho kho lưu trữ thử nghiệm và cài đặt
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
3 cho quá trình tải lên.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
5Bây giờ chúng ta gần như hoàn thành, với tài khoản đã tạo, chúng ta chỉ cần yêu cầu
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
3 tải gói của chúng ta lên, nó sẽ hỏi thông tin đăng nhập của chúng ta và tải gói của chúng ta lên kho lưu trữ được chỉ định.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
0Giờ đây, chúng tôi có thể đăng nhập vào tài khoản của mình trên kho lưu trữ thử nghiệm PyPI và ngạc nhiên trước gói mới tải lên của chúng tôi trong một lúc, sau đó lấy nó bằng cách sử dụng
from setuptools import setup
setup[
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='//github.com/bgse/hellostackoverflow'
]
1.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
1Như chúng ta có thể thấy, quy trình cơ bản không phức tạp lắm. Như tôi đã nói trước đó, có rất nhiều điều về nó ngoài những gì được đề cập ở đây, vì vậy hãy tiếp tục và đọc hướng dẫn để được giải thích sâu hơn