学习笔记:发布自己的python模块安装包

举报
天元浪子 发表于 2021/07/27 00:38:22 2021/07/27
【摘要】 文章目录 0. 前言1. 准备工作(1) 注册 pypi.org 用户(2) 使用 pip 安装或升级几个必备工具 2. 规划文件目录(1) __init__.py(2) README.md(3) setup.py 3. 生成安装包文件4. 上传安装包文件5. 安装 0. 前言 发布自己的python模块安装包,首先得把自己的模块做成 .whl ...

0. 前言

发布自己的python模块安装包,首先得把自己的模块做成 .whl 格式的文件,然后再找个地儿存放它,接下来就是在 pip 命令中使用 -i 参数指定这个地儿(下载源)。Just so sooooooooo

1. 准备工作

(1) 注册 pypi.org 用户

我原本就是 pypi 的注册用户,但当我上传 .whl 格式的文件时,却被提示无权限。仔细阅读相关文档才发现,还需要在https://test.pypi.org/account/register/ 注册。我不确定是不是仅在这里注册就可用了。

(2) 使用 pip 安装或升级几个必备工具

生成和上传 .whl 格式的文件需要几个特殊工具,好在这几个工具使用 pip 就可以轻松搞定。

python.exe -m pip install --user --upgrade setuptools wheel 
python.exe -m pip install --user --upgrade twine

  
 
  • 1
  • 2

2. 规划文件目录

假定要发布的模块名称为 wxgl,包含 scene.py, region.py, colorbar.py 等三个文件。文件目录结构如下:

/wxgl_pkg
	wxgl
		__init__.py
		colorbar.py region.py
		scene.py
	README.md
	setup.py

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

(1) init.py

该文件其内容可以为空。我的 init.py文件如下:

-*- coding: utf-8 -*-

name = 'wxgl'
version = "0.3.0"
version_info = (0, 3, 0, 0)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

(2) README.md

关于安装和使用的说明,文本文件,不能使用中文。

(3) setup.py

# -*- coding: utf-8 -*-
import setuptools

with open("README.md", "r") as fh: long_description = fh.read()

setuptools.setup( name="wxgl", version="0.3.0", author="xufive", author_email="xufive@gmail.com", description="A 3d library based pyOpenGL.", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/xufie/wxgl", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ],
)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

提醒一点:License 很重要,pipy 检查很严格,不可乱写。最初是我使用 GPL,检查失败,后改用 MIT 才通过。

3. 生成安装包文件

运行 setup.py 脚本,生成安装包文件

python.exe setup.py sdist bdist_wheel

  
 
  • 1

顺利的话,你可以看到 dist 文件夹:

/wxgl_pkg
	dist
		wxgl-0.3.0-py3-none-any.whl
		wxgl-0.0.1.tar.gz
	wxgl
		__init__.py
		colorbar.py region.py
		scene.py
	README.md
	setup.py

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如果只需要 .whl 文件,就运行:

python.exe setup.py bdist_wheel

  
 
  • 1

4. 上传安装包文件

切换到setup.py的同级目录( 此时应该可以看到dist文件夹),运行:

python.exe -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

  
 
  • 1

这是pypi提供的一个测试用的仓库。根据提示输入用户名、密码,稍等片刻,即可完成。当然,也可以用下面的命令直接上传到https://upload.pypi.org/legacy/之下,这是正式的python模块仓库。

python.exe -m twine upload dist/*

  
 
  • 1

5. 安装

如果上一步上传到了测试用的仓库,安装时请使用 -i 参数,指定安装源为https://test.pypi.org/simple/,其他参数不变:

pip install -i https://test.pypi.org/simple/ wxgl

  
 
  • 1

如果上一步上传到了正式的仓库,安装就和所有的模块一样了:

pip install  wxgl

  
 
  • 1

文章来源: xufive.blog.csdn.net,作者:天元浪子,版权归原作者所有,如需转载,请联系作者。

原文链接:xufive.blog.csdn.net/article/details/88640229

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。