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


    准备工作

    1.创建一个项目文件夹

    mkdir dada_openapi_python
    cd dada_openapi_python
    

    2.创建包文件夹

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

    mkdir dada_openapi_client
    cd dada_openapi_client
    

    3.编写包代码

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

    制作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/

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/longweiqiang/p/12157960.html
Copyright © 2020-2023  润新知