当前位置: 移动技术网 > IT编程>脚本编程>Python > 记录第一次制作pypi包的过程

记录第一次制作pypi包的过程

2020年01月07日  | 移动技术网IT编程  | 我要评论

保钩,色魔堂,海贼王之帝皇巅峰

准备工作

1.创建一个项目文件夹

mkdir dada_openapi_python
cd dada_openapi_python

2.创建包文件夹

在里面在创建一个 dada_openapi_client 的文件夹,这个文件夹的名称我故意创建的和上层目录不一样,以免误会,这个文件夹其实就是包名称了

mkdir dada_openapi_client
cd dada_openapi_client

3.编写包代码

根据各自的业务场景来,我下面列举一个我编写的

制作pypi包

现在项目逻辑已经完成,那么开始做 pypi 的包了

1.创建setup.py文件

dada_openapi_python文件夹中,创建配置文件setup.py,并填写配置,下面贴出我的配置

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time    : 2020/1/6 15:41
# @author  : weiqiang.long
# @site    : 
# @file    : setup.py
# @software: pycharm
# @description:

import setuptools

with open("readme.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

setuptools.setup(
    name = "dada_openapi_client",
    version = "1.0.3",
    author = "weiqiang.long",
    description = "达达签名数据封装",
    long_description = long_description,
    long_description_content_type="text/markdown",
    url = "https://github.com/longweiqiang/dada_openapi_python",
    packages = setuptools.find_packages(),
    classifiers=[
        "programming language :: python :: 3",
        "license :: osi approved :: mit license",
        "operating system :: os independent",
    ]

)

上面配置中的每个字段具体含义,可参照的2.8项说明

打包

dada_openapi_python文件夹运行此命令

python setup.py sdist bdist_wheel

上传

python -m twine upload dist/*
  • 成功上传如下:
uploading distributions to https://upload.pypi.org/legacy/
uploading dada_openapi_client-1.0.3-py3-none-any.whl
100%|████████████████████████████████████████████████████
███████████████| 7.88k/7.88k [00:00<00:00, 10.6kb/s]
uploading dada_openapi_client-1.0.3.tar.gz
100%|████████████████████████████████████████████████████
███████████████| 6.23k/6.23k [00:01<00:00, 4.43kb/s]

可能遇到的问题

upload failed (403): invalid or non-existent authentication information.

错误的用户验证信息,你需要创建一个用户验证文件 ~/.pypirc

创建用户验证文件 ~/.pypirc

在自己的用户目录下新建一个空白文件命名为.pypirc,内容如下:

[distutils]index-servers=pypi

[pypi]repository = https://upload.pypi.org/legacy/
username = xxx
password = xxx

upload failed (403): you are not allowed to edit 'xxx' package information

你需要先注册你的包才可以开始上传

server response (401): incomplete registration; check your email

你的pypi账户还没完成邮箱验证,你需要去注册邮箱找到一封验证邮件完成验证后再重试失败的步骤。

server response (400): invalid classifier "topic :: software development :: utilities"

你的setup.py文件中的classifier信息有误,请按的正确分类书写classifier.

error: no dist file created in earlier command

你还没打包就开始了上传命令

upload failed (400): file already exists

文件已经存在了,你每一次上次都应该更新版本号。

参考文档:

https://packaging.python.org/tutorials/packaging-projects/
https://segmentfault.com/a/1190000008663126
http://xiaoh.me/2015/12/11/python-egg/

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网