前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >制作pypi包的过程

制作pypi包的过程

作者头像
赵云龙龙
发布2020-02-24 12:39:06
1.1K0
发布2020-02-24 12:39:06
举报
文章被收录于专栏:python爱好部落

创建项目文件夹

代码语言:javascript
复制
mkdir dada_openapi_python
cd dada_openapi_python

创建包文件夹

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

代码语言:javascript
复制
mkdir dada_openapi_client
cd dada_openapi_client

编写包代码

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

制作PyPI包

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

创建setup.py文件

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

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/1/6 15:41
# @Author  : snake
# @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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python爱好部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建项目文件夹
  • 创建包文件夹
  • 编写包代码
  • 制作PyPI包
  • 创建setup.py文件
  • 打包
  • 上传
  • 可能遇到的问题
    • Upload failed (403): Invalid or non-existent authentication information.
      • Upload failed (403): You are not allowed to edit 'xxx' package information
        • Server response (401): Incomplete registration; check your email
          • Server response (400): Invalid classifier "Topic :: Software Development :: Utilities"
            • error: No dist file created in earlier command
              • Upload failed (400): File already exists
                • 参考文档:
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档