打包
偶尔有一些复用性很高,复杂度也很高的函数要反复调用,可以自行打包,安装
打包结构如下
以iso_timer
为例
mkdir common
vim __init__.py
cd common
vim __init__.py
vim format.py
# init.py
from .common import *
# /common/init.py
from .format import *
# format.py
from rich import print
from datetime import datetime__all__ = ["hello_printf", "iso_now"]def hello_printf():print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())def iso_now():current_time = datetime.now()print(current_time.isoformat())return current_time.isoformat()
# pyproject.toml
[build-system]
requires = ["setuptools", "wheel"]
# setup.cfg
[metadata]
name = iso_timer
version = 1.0.0
description = global use
author = starlight
author_email = mylifcc@gmail.com[options]
package_dir==src
packages = find:
# setup.py
from setuptools import setup, find_packagessetup(name="iso_timer",version="0.1",packages=find_packages(where="src"),package_dir={"": "src"},install_requires=["rich >= 13.6.0",# 你的依赖包列表,例如:# "matplotlib >= 2.2.0"],
)
然后进行打包
在包的根目录,我这里是/mylib
下
生成包:python setup.py sdist
安装包: pip install .
安装后即可使用,注意,这里的文件夹名要和setup
的name
一样
# test_iso.py
from iso_timer import *hello_printf()
发布
注册
在pypi
注册用户 -> 验证邮箱 -> 开通2步验证 -> 创建api_token -> 保存token到本地
notepad %USERPROFILE%\.pypirc # for win systemvim $HOME/.pypirc # for other system
用户名固定为__token__
设置好后进行上传
pip install twine
twine upload dist/*
示例代码在我的 github,如果有问题可以留言。