一.简要介绍
python经常使用第三方软件包作为工具,包括爬虫分析工具和web请求工具。 之所以将其打包,是为了把技术和业务分开,二是因为可以做很多事情
项目的多平台共享。 python使用的第三方工具包基本上是从Pypi.org下载的。 了解如何创建自己的包,然后将其上传到Pypi并将其用作工具。
Pypi软件包whl文件
首先,必须确保需要打包的package包含自述文件. MD、许可证[不必要]和setup/py文件。 三个分别是手册、许可证和
python setuptools用于安装此软件包的构建脚本。
2.1 setup.py
setup.py包含与package相对应的信息,包括package的名称、版本和作者,以及应该包含在package中的程序文件和数据。
以下是setup.py的示例文件。
导入操作系统
from setup tools导入设置,find_packages
path=OS.path.abspath (OS.path.dirname ) __file_ )
try:
withopen(OS.path.join ) path,' README.md ' ) ) as f:
long_description=f.read (
except Exception as e:
long _ description=' customizeoktacli '
设置(
name='okta-cmd ',
版本='0.1.0',
keywords=('pip '、' okta '、' cli '、' cmd '、' steven ',
描述=' okta CLI ',
long _ description=long _ description,
long _ description _ content _ type=' text/markdown ',
python_requires='=3.5.0',
许可证=' MIT许可证',
URL=' https://github.com/Steven Qiang/okta-cmd ',
author='steven ',
author _ email=' Qiang Gao7@ Gmail.com ',
packages=find_packages (
include_package_data=True,
install_requires=['requests ',' click'],
平台=' any ',
脚本=[ ],
entry_points={
' console_scripts': [
' okta-cmd=oktacmd:main_cli '
]
}
)
name:此包的名称可以由字母、数字和-组成。 请注意,此名称与已经上载到pypi.org的其他项目不同
版本:是软件包的发布版本,可以直接写在这里,也可以从其他地方引用
author: author可以用于指定此包的作者信息
author_email:这也是指定该包的作者信息
描述:当前包的简短总结
long_description:是当前package的详细说明。 此详细说明显示在Python Package Index上的上一项目标主页上
long_description _ content _ type :指定long _ description内容的格式。 在当前情况下为markdown
url:是当前package的主页链接。 在大多数情况下,这是指向GitHub、GitLab、Bitbucket或其他代码存储服务的链接
packages:是一组可以导入的python软件包文件,它们应该包含在分发软件包文件(distribution package )中。 您可以在此手动罗列所有文件。
或者,find_packages ) )函数自动包含所有python软件包文件和子软件包文件。
python_requires: python依赖懒惰版
classifiers:指定当前包的其他元信息(元数据)。 例如,当前包兼容的python版本和操作系统、当前包提供的功能类型、
当前package许可证等。 必须始终包括当前package支持的python版本、操作系统和许可证。 请注意在此定义的classifiers关键字
所含信息必须符合PyPI的规定。
install_requires:指定当前包依赖的其他python类库。 这些指定的python类库将在安装本package时一起安装。
platforms:程序适用的软件平台列表
keywords:程序的关键字列表
include_package_data:是否自动包含软件包中所有受版本控制的(cvs/svn/git )数据文件? 默认True
entry_points:用于支持cli命令的自动生成
使用上述配置信息,将生成okta-cmd命令,并可直接使用。 它由entry_points组成。
目录结构:
许可证
README.md
oktacmd
)__init_.py
() cli.py
() common.py
() main.py
() okta.py
setup.py
( setup.sh
生成分组:
1 .安装最新版的setuptools和wheel
python3- mpipinstall---- user---- upgradesetuptoolswheel
使用sdist构建源分发包
python setup.py sdist bdist_wheel
请注意,这里是固定命令。 (请确保setup.py存在于当前路径下。 )
运行此命令后,请确保生成的dist/文件夹下存在相应的. whl和. tar.gz文件。 其中. tar.gz文件是我们python package的源文件文档。
. whl是软件包(构建分发)。 较新版本的pip首先尝试安装软件包,但如果失败,则尝试使用软件包进行安装。
3 .将项目上传到PyPI
首先注册PyPI的帐户,然后选择https://pypi.org/
安装最新版本的twine
python3- mpipinstall---- user---- upgrade twine
3 .项目上传
使用twine上传项目时,必须输入相应的PyPI帐户和密码。
python3- m twine上传光盘/*