教程
用 python 的人都用 pip 安装过包。那么有着开源精神的你,是否也想把自己写的包上传到 pypi 呢?
更新/发布步骤:
- 修改完善
setup.py
- 进行本地测试
python setup.py develop
- 编译
python3 setup.py sdist
- 上传到 pypi
twine upload dist/*
新手注意事项
你需要先去 pypi 注册一个账号,给你的包起一个名字(搜一搜没有被占用就行),然后用 pip 在本地安装 twine,这个是用来上传到 pypi 的工具。
目录结构需要注意,你的项目目录结构应该是这样的,要把 setup.py 放在外面:
setup.py 的内容大致如下;可以抄我的,改改名称
、版本
、描述
就行,非常简单。
1import codecs
2import os
3from setuptools import setup, find_packages
4
5# these things are needed for the README.md show on pypi (if you dont need delete it)
6here = os.path.abspath(os.path.dirname(__file__))
7
8with codecs.open(os.path.join(here, "README.md"), encoding="utf-8") as fh:
9 long_description = "\n" + fh.read()
10
11# you need to change all these
12VERSION = '1.0.2'
13DESCRIPTION = 'a ligh weight menu , support both win and mac '
14LONG_DESCRIPTION = 'dumb_menu is a ligh weight menu ,support hot key, support both win and mac'
15
16setup(
17 name="dumb_menu",
18 version=VERSION,
19 author="clever chen",
20 author_email="",
21 description=DESCRIPTION,
22 long_description_content_type="text/markdown",
23 long_description=long_description,
24 packages=find_packages(),
25 install_requires=[],
26 keywords=['python', 'menu', 'dumb_menu','windows','mac','linux'],
27 classifiers=[
28 "Development Status :: 1 - Planning",
29 "Intended Audience :: Developers",
30 "Programming Language :: Python :: 3",
31 "Operating System :: Unix",
32 "Operating System :: MacOS :: MacOS X",
33 "Operating System :: Microsoft :: Windows",
34 ]
35)
编译成功的话会生成 dist 和 egg-info 两个文件夹,egg-info 是用来记录包的信息的,dist 是用来存放打包好的包的。
然后就可以上传到 pypi 了,最好测试好了再发,因为你不能发重复的版本号。
1twine upload dist/*
然后后面再修改和更新的话,参考 更新/发布步骤 即可。