最近学习了一下,发布了一个自己的pypi Python包,这里我大致分享如何发布自己的Pypi包一般过程。
参考文章01:
https://blog.csdn.net/weixin_37543731/article/details/101192428
0 需求分析
我需要讲我写的myPrint()函数公布给别人用,别人下载我的xiaoTangPypi包,然后可以调用myPrint()函数
1 注册 PyPI 测试账号
注册地址:https://test.pypi.org/account/register/
2 安装环境
先确保已经安装了最新版本的 setuptools, wheel, twine
pip install --user --upgrade setuptools wheel twine
3 创建项目包myPypiTest
目录树结构:
F:.
│ README.md
│ setup.py
│
└─xiaoTangPypi
xiaoTangTest.py
__init__.py
3.1 创建 setup.py
setup.py 是 setuptools 的构建脚本,告知 setuptools 包的名称和版本,以及哪些文件将被打包。
在项目根目录新建文件 setup.py ,复制黏贴如下代码到 setup.py:
import setuptools
with open("README.md", "r",encoding='utf-8') as fh:
long_description = fh.read()
setuptools.setup(
name="xiaoTangPypi",
version="0.0.1",
author="xiaoTang",
author_email="123456@gmail.com",
description="Simple test example",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/taw19960426/-Speech-signal-processing-experiment-tutorial-_python.git",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
)
3.2 创建__init__.py
_init_.py 是包内部模块对外的导出接口,或者说,当使用 import 时的导入对象。 我们把需要提供外部应用使用的函数,数据,类等都放在这个文件里。当然,并非一定要此文件里实现,import 进来的模块也会被导出,例如下面的
xiaoTangTest.py下的myPrint()函数。
在项目根目录新建文件夹xiaoTangPypi,xiaoTangPypi文件夹下存放__init__.py和我写的函数包xiaoTangTest.py,目录树如下:
_init_.py
该文件就一个目的,我把要调用的函数声明在这里,如果涉及到命令行传参,参考文章:
https://blog.csdn.net/weixin_37543731/article/details/101192428
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
from .xiaoTangTest import *
def myPrint():
return xiaoTang()
xiaoTangTest
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@File :xiaoTangTest.py
@Author :唐维康
@Date :2022/3/25 10:52
@功能:
@用法:
'''
def xiaoTang():
print("**********hello xiaoTang!!!*********")
4 打包项目包
首先切换到setup.py所在的目录:cd ***
然后执行:
python setup.py sdist bdist_wheel
运行后,项目目录结构如下:
F:.
│ README.md
│ setup.py
│
├─build
│ ├─bdist.win-amd64
│ └─lib
│ └─xiaoTangPypi
│ xiaoTangTest.py
│ __init__.py
│
├─dist
│ xiaoTangPypi-0.0.1-py3-none-any.whl
│ xiaoTangPypi-0.0.1.tar.gz
│
├─xiaoTangPypi
│ xiaoTangTest.py
│ __init__.py
│
└─xiaoTangPypi.egg-info
dependency_links.txt
PKG-INFO
SOURCES.txt
top_level.txt
5 上传和安装
5.1 上传
期间会让你输入Pypi的账户和密码
python -m twine upload dist/*
上传完了以后,Pypi可以看到的
5.2 下载
pip install xiaoTangPypi -i https://pypi.tuna.tsinghua.edu.cn/simple
简单写个测试代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@File :test01.py
@Author :唐维康
@Date :2022/3/25 16:40
@功能:
@用法:
'''
import xiaoTangPypi
xiaoTangPypi.myPrint()