zoukankan      html  css  js  c++  java
  • 记录第一次制作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/

  • 相关阅读:
    LayoutInflater作用及使用
    android中共享全局数据的方法
    http-关于application/x-www-form-urlencoded等字符编码的解释说明
    如何使用V7包中ActionBar(Eclipse版)
    Android Studio如何集成Genymotion
    Andriod Studio科普篇——4.关于编译的常见问题
    Gradle Android最新自动化编译脚本教程
    gradle 2.1构建android出现错误的解决方案
    Eclipse搭建Gradle环境
    eclipse下gradle配置
  • 原文地址:https://www.cnblogs.com/longweiqiang/p/12157960.html
Copyright © 2011-2022 走看看