上传自己写好的python程序到pypi

一、介绍

在上传本人写的python包到pypi的过程中我踩了很多很多的坑,遇到了很多很多的问题,
各种400、403,于是便有了本编文章,以记录下来,防止更多的小白踩坑

二、整体流程

(一)PyPi账号注册

PyPi官网

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)上传前准备

1. 文件列表结构

在这里插入图片描述

packaging_mutils 是项目名(名称可修改)
mmutils :包含源代码的程序包(名称可修改)
README.md 关于程序的介绍和说明(名称不建议修改)
setup.py :用于打包的python程序

2. mmutils

在这个下面一定会有一个__init__.py文件,因为这是一个python包

3. setup.py编写

import codecs
import os
from setuptools import setup, find_packages

# these things are needed for the README.md show on pypi (if you dont need delete it)
here = os.path.abspath(os.path.dirname(__file__))

with codecs.open(os.path.join(here, "README.md"), encoding="utf-8") as fh:
    long_description = "\n" + fh.read()

# you need to change all these
VERSION = '版本号'
DESCRIPTION = '简单描述'

setup(
    name="要显示的唯一标识(用于pip install xxx)",
    version=VERSION,
    author="作者",
    author_email="作者的电子邮件",
    description=DESCRIPTION,
    # 长描述内容的类型设置为markdown
    long_description_content_type="text/markdown",
    # 长描述设置为README.md的内容
    long_description=long_description,
    # 使用find_packages()自动发现项目中的所有包
    packages=find_packages(),
    # 许可协议
    license='MIT',
    # 要安装的依赖包
    install_requires=[
        "Faker>=18.7.0",
        "ddddocr>=1.4.7",
        "requests>=2.30.0",
        "loguru>=0.7.0",
        "lxml>=4.9.2",
    ],
    # keywords=['python', 'menu', 'dumb_menu','windows','mac','linux'],
    classifiers=[
        "Development Status :: 1 - Planning",
        "Intended Audience :: Developers",
        "Programming Language :: Python :: 3",
        "Operating System :: Unix",
        "Operating System :: MacOS :: MacOS X",
        "Operating System :: Microsoft :: Windows",
    ]
)

find_packages() : 函数会自动查找项目目录中包含 init.py 文件的子目录,并将这些子目录识别为包。它会递归地遍历子目录,以查找嵌套的包

如果不想使用所有的包,那么可以手动指定
例如:packages=[‘package1’, ‘package2’, ‘package3’]

4. README.md

如果在setup.py中使用了README.md,那么README.md中必须要有内容,否则可能会报错。
如果我记得没错的话,内容为空,会报类型错误

5. 安装依赖包

(1)更新pip包

py -m pip install --upgrade pip

(2)安装twine

pip install twine

(三)准备上传

1. 构建发布包

python setup.py sdist bdist_wheel

需要保证终端的当前路径下有setup.py文件(也就是说,当前应该处于项目路径下)

2. 上传包

twine upload dist/*

根据提示输入用户名密码
[Tips] 在密码输入的时候,终端是不会实时显示的
[Tips] 如果你误打误撞开启了“双重身份验证”,那么你就不能通过用户名和密码进行上传,只能通过API令牌的方式上传,这就涉及到了一个文件.pypirc

(四)上传优化

每次都要输入用户名和密码的话既繁琐又不安全,具体可以参考这里

1. 创建 API token

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 创建 .pypirc 文件

我的电脑是windos系统,所以我是在“C:\Users<用户名>”下创建的 .pypirc

[distutils]
  index-servers =
    pypi
    PROJECT_NAME

[pypi]
  username = __token__
  password = 复制的API token

三、其他待完善

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值