如何发布你自己的脚本

  这里以一个简单的例子来说明如何创建自己的程序、打包并发布到PyPI。

创建自己的项目

首先创建一个目录mypkg_project,结构如下:

1
2
3
4
5
6
7
mypkg_project/
├── mypkg/
│ ├── __init__.py
│ └── utils.py
├── README.md
├── setup.py
├── pyproject.toml

编写包的内容

在mypkg/utils.py内写入:

1
2
def add(a, b):
return a + b

在mypkg/init.py内写入:

1
from .utils import add

添加元数据文件README.md

在README.md中写入:

1
2
# mypkg
A simple Python package with an add function.

在setup.py中写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from setuptools import setup, find_packages
setup(
name='mypkg',
version='0.1',
author='Your Name',
description='A simple example package',
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
packages=find_packages(),
classifiers=[
'Programming Language :: Python :: 3',
],
python_requires='>=3.6',
)

在pyproject.toml中写入:

1
2
3
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

项目打包

在根目录mypkg_project/中运行:

1
2
python3 -m pip install --upgrade build
python3 -m build

会生成:

1
2
3
dist/
├── mypkg-0.1-py3-none-any.whl
└── mypkg-0.1.tar.gz

本地安装

用pip就可以本地安装:

1
pip install dist/mypkg-0.1-py3-none-any.whl

利用python就可以调用:

1
2
from mypkg import add
add(2, 3)

上传到PyPI(公开发布)

首先安装twine:

1
pip install twine

发布:

1
twine upload dist/*

这里会提示你输入PyPI的用户名和密码。这一步需要首先到PyPI注册账号,发布的时候需要用token

1
twine upload --repository pypi dist/* -u __token__ -p pypi-<your_token>

上传成功之后可以在https://pypi.org/project/mypkg/访问。
然后任何人都可以安装你的脚本了:

1
pip install mypkg