打包
偶尔有一些复用性很高,复杂度也很高的函数要反复调用,可以自行打包,安装
打包结构如下
以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_packages
setup(
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 system
vim $HOME/.pypirc # for other system
用户名固定为__token__
设置好后进行上传
pip install twine
twine upload dist/*
示例代码在我的 github,如果有问题可以留言。