最近学习了一下,发布了一个自己的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
│
└─xiaoTangPypixiaoTangTest.py__init__.py

3.1 创建 setup.py

setup.py 是 setuptools 的构建脚本,告知 setuptools 包的名称和版本,以及哪些文件将被打包。

在项目根目录新建文件 setup.py ,复制黏贴如下代码到 setup.py:

import setuptoolswith 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-infodependency_links.txtPKG-INFOSOURCES.txttop_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 xiaoTangPypixiaoTangPypi.myPrint()

在PyPI上发布自己的python包相关推荐

  1. pypi.python.org_在Pypi上发布自己的Python包

    使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install 最近因为项目上的需要,发布了一个自己的pypi Python包,这里我大 ...

  2. 在pypi上发布python包详细教程

    使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...

  3. 发布自己的Python包(Pypi)

    发布自己的Python包(Pypi) 我们经常使用 Pypi 来安装包,但是有时候我们也想要发布自己的 Pypi 包,有可能我们写了一个特别牛的包,也有可能我们只是想使用自己常用的一些轮子,可能这是我 ...

  4. 【Python】如何在PyPI上发布自定义软件包

    1. 引言 在Python中我们经常使用pip来安装第三方Python软件包,其实我们每个人都可以免费地将自己写的Python包发布到PyPI上,供他人来通过pip进行安装. 在本文中,我们将从一步一 ...

  5. 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...

    北京千锋互联科技有限公司成都分公司骆昊(jackfrued)在Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅. 简单的说,Python是一个"优雅& ...

  6. python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程

    事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境. 简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码.图像和 ...

  7. python 发布包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  8. python自己写包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  9. python包发布到Pypi官网

    python包发布教程 首先,我们先在Pypi注册一个账户,如图: (点register注册) 注册完毕后,我们还要安装setuptools和twine两个包 >>> pip ins ...

最新文章

  1. EXCEL基础篇(二)
  2. 面试问了这两个问题,很多人的回答都自相矛盾
  3. 2022博士后,新加坡国立大学 Xinchao Wang 研究组
  4. 英国前首相:为什么欧洲没有诞生互联网巨头?
  5. win10下c/c++隐藏进程
  6. 三篇文章了解 TiDB 技术内幕——说存储
  7. JavaFX Button和Scene点击事件代码示例
  8. else if mybatis 嵌套_新手如何书写C++代码,远离深度嵌套的if-else
  9. 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
  10. 掘金浏览器插件安装图文教程
  11. vue-cli部署ngixs_nginx部署访问vue-cli搭建的项目的方法
  12. 鸿蒙app迁移,余承东宣布:明年3月P40首发鸿蒙系统!主流App将迁移鸿蒙
  13. 产品质量的基石——微软Bug管理
  14. python tfidf特征变换_2 python 文本特征提取 CountVectorizer, TfidfVectorizer
  15. 每日一题/011/线性代数/高等代数/两个上三角矩阵的乘积还是上三角矩阵
  16. 施乐打印机驱动程序安装(CP315/318DW)
  17. 创意无价,优化 百度、Bing、Duckduckgo 三大国际搜索引擎
  18. android 绘画笔迹回放_Android画板 半透明画笔 笔迹叠加效果
  19. Codec Engine 概要
  20. okhttp3发送https请求

热门文章

  1. 2017年10月08日普及组 世界语
  2. Luogu P5244 [USACO2019Feb Platinum] Mowing Mischief (动态规划、决策单调性)
  3. BZOJ 1500 Luogu P2042 [NOI2005] 维护数列 (Splay)
  4. mysql 怎么实现组内排名_MySQL 实现排名(分组排名)
  5. 20211108 微分跟踪器
  6. 我对模板模式和策略模式的理解
  7. Canvas动画基础之碰撞检测
  8. 关于Authorware的十二种使用技巧
  9. Shell 去掉文本中的空格
  10. Fragment使用LocalBroadcastManager接收广播消息