制作python包并上传pypi

平时写Python,需要用到一个新包时,习惯了pip install packageName,写多了就会想,这些包都是怎么来的?自己能不能"制作"一个,任何人也都可以通过pip安装?

有此想法,躬行实践.答案显然是肯定的,而且难度也绝没有想的那样大,或者说 It is easy.

1.编写代码

如要制作的包名为dashen,新建如下目录结构

  • 其中两个__init__.py为空即可

  • README.md写一些该package的介绍,非必选

  • your_func.py是具体的功能实现,在此示例如下:

python 复制代码
def dashen_address():
    print('www.dashen.tech')


def dashen_master():
    print('shuang.cui')


def author_hometown():
    print('山东邹平')
  • setup.py内容如下:
python 复制代码
import setuptools

with open("README.md","r") as fh:
    long_description = fh.read()

setuptools.setup(
    # 包的分发名称,使用字母、数字、_、-
    name="dashen",
     # 版本号, 版本号规范:https://www.python.org/dev/peps/pep-0440/
    version="0.0.1",
    # 作者名
    author="fliter",
     # 作者邮箱
    author_email="i@dashen.tech",  
    # 包的简介描述
    description="我的第二个python包",
    # 包的详细介绍(一般通过加载README.md)
    long_description=long_description, 
    # 和上条命令配合使用,声明加载的是markdown文件
    long_description_content_type="text/markdown",
    # 项目开源地址
    url="https://dashen.tech",
     # 如果项目由多个文件组成,我们可以使用find_packages()自动发现所有包和子包,而不是手动列出每个包,在这种情况下,包列表将是example_pkg
    packages=setuptools.find_packages(),
    # 关于包的其他元数据(metadata)
    classifiers=[
         # 该软件包仅与Python3兼容
        "Programming Language :: Python :: 3",
        # 根据MIT许可证开源
        "License :: OSI Approved :: MIT License",
        # 与操作系统无关
        "Operating System :: OS Independent",
    ],
)

2.账号注册及打包

pip install --upgrade pip setuptools wheel

  • 切换到setup.py的同级目录,进行打包

python setup.py sdist

会出现两个新文件

3.上传

上传Pypi

pip install twine

(如果已经安装twine,跳过此步骤)

python -m twine upload dist/*

输入Pypi的账号及密码


4.查看及检验


<font color:"red">完结,撒花

相关推荐
葫芦和十三35 分钟前
图解 MongoDB 07|索引类型:七种索引,七种访问形状
后端·mongodb·agent
兵慌码乱1 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
朦胧之2 小时前
AI 编程-老项目改造篇
java·前端·后端
金銀銅鐵3 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
爱勇宝5 小时前
我做了一个只用来搜歌词的小 App
android·前端·后端
IT_陈寒6 小时前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
FreakStudio6 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
SelectDB6 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
SelectDB6 小时前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
PinkSun7 小时前
Spring AI ChatMemory踩坑实录:重启丢数据、Agent丢记忆、对话溢出
后端·ai编程