文章目录

  • 0. 前言
  • 1. 准备工作
    • (1) 注册 pypi.org 用户
    • (2) 使用 pip 安装或升级几个必备工具
  • 2. 规划文件目录
    • (1) __init__.py
    • (2) README.md
    • (3) setup.py
  • 3. 生成安装包文件
  • 4. 上传安装包文件
  • 5. 安装

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

2. 规划文件目录

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

/wxgl_pkgwxgl__init__.pycolorbar.pyregion.pyscene.pyREADME.mdsetup.py

(1) init.py

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

-*- coding: utf-8 -*-name = 'wxgl'
version = "0.3.0"
version_info = (0, 3, 0, 0)

(2) README.md

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

(3) setup.py

# -*- coding: utf-8 -*-
import setuptoolswith 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",],
)

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

3. 生成安装包文件

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

python.exe setup.py sdist bdist_wheel

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

/wxgl_pkgdistwxgl-0.3.0-py3-none-any.whlwxgl-0.0.1.tar.gzwxgl__init__.pycolorbar.pyregion.pyscene.pyREADME.mdsetup.py

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

python.exe setup.py bdist_wheel

4. 上传安装包文件

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

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

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

python.exe -m twine upload dist/*

5. 安装

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

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

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

pip install  wxgl

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

  1. 【Python】学习笔记总结4(Python模块)

    文章目录 四.Python模块 1.import导入模块 2.from...import导入模块 3.as 给模块取别名 4. os模块 5.自行编写模块 四.Python模块 1.import导入模 ...

  2. python模块安装包_制作python模块安装包[转载自刘天斯]

    python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算.图片处理.web应用.GUI开发等.当然也可以将自己写的模块进行打包或发布.一简单的方法是将你的类包直接copy到python的li ...

  3. python模块安装包_python子模块安装包

    我有一个自定义项目包,其结构如下:package-dir/ mypackage/ __init__.py submodule1/ __init__.py testmodule.py main.py r ...

  4. Python学习笔记:常用内建模块6 (urllib)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:常用内建模块4:hmac

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:常用内建模块3:struct

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. python学习笔记(一)Python 简单介绍

    Python学习笔记(一)Python 简单介绍 Python介绍 Python简介 Python应用领域 Python是解释型的语⾔ 编译和解释的区别是什么? 编译型vs解释型 编译型 解释型 Py ...

  8. Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

    Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...

  9. Boost库学习笔记(二)算法模块-C++11标准

    Boost库学习笔记(二)算法模块-C++11标准 一.综述 Boost.Algorithm是一系列人通用推荐算法的集合,虽然有用的通用算法很多,但是为了保证质量和体积,并不会将太多通用算法通过审查测 ...

最新文章

  1. PNAS-2018-根系分泌物香豆素调控微生物群落结构并促进植物健康
  2. 苹果员工“神操作”:自建网站揭露公司性骚扰和歧视事件
  3. yelee主题修改博客左侧文章目录的按钮字体
  4. android string拼接字符串_String对象的存储、拼接和比较
  5. 专场介绍 | 第12届中国R会议(北京)生物信息专场
  6. 有什么计算机应用基础的app,计算机应用基础软件
  7. Unity粒子特效出现慢
  8. 笔记_python库jpype安装和使用,及如何打包java程序供Python调用
  9. 计算理论基础 第2版 Harry R. Lewis 第1章
  10. 一个IT公司技术总监的职责
  11. JavaWeb之【web站点的欢迎页面】
  12. QM 、QA和QC的区别
  13. 玩转HTML(004)
  14. 自学 java如何入门?
  15. 第三章 区块链进阶 [18]
  16. 工程师的基本功是什么?听听美团技术大咖怎么说
  17. (附源码)springboot 新闻管理系统 毕业设计 211113
  18. 联想小新蓝屏问题解决方法三步走!
  19. 虚拟机磁盘格式有哪些
  20. 串口编程 - 串口简介

热门文章

  1. 物联网构建人类“大生态系统”——万物互联!(来源: 水木然)
  2. dns按来路ip智能解析_求助DNS问题,如何根据来源Ip地址作策略,使不同来源的IP地址解析到不同地址?...
  3. 根据经纬度计算两点之间的距离、点到直线的距离
  4. ➢ 微信公众号运营教程(一)申请一个微信公众号
  5. matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(一)
  6. (PDC2008)Anders Hejlsberg: The Future of C#
  7. sqlsever练习题大全所有练习代码文字版程序可做见习报告用
  8. 北大计算机硕士选调有发展吗,985毕业生不愿当公务员?别被忽悠了,看看北大毕业生的去向!...
  9. 阿里云边缘云计算的技术和实践
  10. Toronto Research Chemicals丨ACP-5197 方案