您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:用Python将库打包发布到pypi

51自学网 2021-10-30 22:45:54
  python
这篇教程用Python将库打包发布到pypi写得很实用,希望能帮到您。

如果需要将自己写好的python打包,并发布到pypi,这样其他人就可以直接通过pip install来安装对应的包,可以参考如下教程

1. 注册pypi账号并创建token

首先访问https://pypi.org/ 并注册账号
然后跳转到账号设置

在这里插入图片描述

然后选择API token->Add API token

在这里插入图片描述

输入token name并在Scope中选择Entire account(第一次需要选择Entire account)

在这里插入图片描述

然后在本地,修改.pypirc文件
输入的内容为:

[pypi]username = __token__password = {token}

只需要修改{token}为自己的token即可

2. 编写setup.py和setup.cfg

setup.cfg的内容为

[metadata]license_files = LICENSE.txt

LICENSE.txt是license文件,需要自行编写
setup.py在根目录下,一个示例为

from setuptools import setupimport compileallfrom os import path# 读取readme文件,这样可以直接显示在主页上this_directory = path.abspath(path.dirname(__file__))with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:    long_description = f.read()compileall.compile_dir("src")setup(    name='my-python',    version='1.0.2',    packages=['src',              'src.main',              'src.main.config'],    url='https://github.com/hTangle',    license='Apache 2.0',    author='hTangle',    author_email='',    description='',    keywords='',    python_requires='>=3.4, <4',    long_description=long_description,    long_description_content_type='text/markdown',    install_requires=['requests'])

具体的字段含义如下:

name: 包名

version: 版本号,支持如下形式

1.2.0.dev1  # Development release1.2.0a1     # Alpha Release1.2.0b1     # Beta Release1.2.0rc1    # Release Candidate1.2.0       # Final Release1.2.0.post1 # Post Release15.10       # Date based release23          # Serial release

description: 包描述,会放在如下图所示的位置处

在这里插入图片描述

url: 包的链接,可以使用github链接,pypi会自动获取到仓库的信息,示例如下:


在这里插入图片描述

author: 作者

license: 许可证

classifiers: 分类,示例如下:

classifiers=[    # How mature is this project? Common values are    #   3 - Alpha    #   4 - Beta    #   5 - Production/Stable    'Development Status :: 3 - Alpha',    # Indicate who your project is intended for    'Intended Audience :: Developers',    'Topic :: Software Development :: Build Tools',    # Pick your license as you wish (should match "license" above)    'License :: OSI Approved :: MIT License',    # Specify the Python versions you support here. In particular, ensure    # that you indicate whether you support Python 2, Python 3 or both.    'Programming Language :: Python :: 2',    'Programming Language :: Python :: 2.7',    'Programming Language :: Python :: 3',    'Programming Language :: Python :: 3.6',    'Programming Language :: Python :: 3.7',    'Programming Language :: Python :: 3.8',    'Programming Language :: Python :: 3.9',],

keywords: 关键字,和论文的关键字类似

project_urls: 一些项目的其他链接,示例如下

project_urls={    'Documentation': 'https://packaging.python.org/tutorials/distributing-packages/',    'Funding': 'https://donate.pypi.org',    'Say Thanks!': 'http://saythanks.io/to/example',    'Source': 'https://github.com/pypa/sampleproject/',    'Tracker': 'https://github.com/pypa/sampleproject/issues',},

packages: 需要打包的目录,需要以根目录为起点,可以使用

find_packages自动查找包,注意不要漏写

install_requires: 包依赖的其他包

python_requires: python的版本需求

package_data: 需要的额外的文件,例如包强依赖一个本地文件,可以使用如下

package_data={    'sample': ['package_data.dat'],},

3. 打包

打包命令为

python setup.py cmd

cmd可以取值为

bdist_wheel : create a wheel distribution

bdist_egg : create an “egg” distribution

sdist : create a source distribution (tarball, zip file, etc.)

bdist : create a built (binary) distribution

bdist_dumb : create a “dumb” built distribution

bdist_rpm : create an RPM distribution

bdist_wininst : create an executable installer for MS Windows

打包为tar.gz

python setup.py sdist

打包好的文件再dist目录下

4. 上传

可以首先使用twine对包进行检查

twine check dist/*

输出如下

在这里插入图片描述

再运行上传命令

twine upload dist/*

到此这篇关于用Python将库打包发布到pypi的文章就介绍到这了,更多相关python打包到pypi内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python xlwt模块的使用解析
python urllib库的使用详解
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。