python打包和发布package

打包

偶尔有一些复用性很高,复杂度也很高的函数要反复调用,可以自行打包,安装

打包结构如下
5.png

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 = [email protected]

[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 .
安装后即可使用,注意,这里的文件夹名要和setupname一样

# 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,如果有问题可以留言。

猜你喜欢

转载自blog.csdn.net/majiayu000/article/details/133983263