使用 setuptools 打包发布
http://timd.cn/setuptools/
简单示例
import setuptools
setuptools.setup(
name="tsari-convert",
version='1.0.0',
author="Gray Snail",
author_email="shtao2011@sina.com",
description="道路格式转换,场景格式转换",
keywords='tsari road convert',
packages=setuptools.find_packages(),
data_files=[('', ['ReadMe.md'])],
classifiers=[
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
],
install_requires=['protobuf==3.10.0', 'polygon3==3.0.9.1'],
python_requires='>=3.6',
)
常规命令
-
python setup.py build
构建所有需要安装的东西,包括包、单独的模块、C 扩展、数据文件、脚本(从命令行启动的、包含 Python 源代码的文件)
-
python setup.py install
安装 build 目录中的所有东西
-
python setup.py clean
清理 build 命令和 bdist 命令生成的临时目录
-
python setup.py sdist
创建源码发行版,可以通过--formats
指定格式,可选值包括:- zip:zip 文件
- gztar:tar.gz 文件
- bztar:tar.bz2 文件
- ztar:tar.Z 文件
- tar: tar 文件
-
python setup.py bdist
创建构建后的二进制的发行版,可以通过
--formats
执行格式,可选值包括:- gztar:tar.gz 文件
- ztar:tar.Z 文件
- egg:egg 文件。bdist --formats=egg 等价于 bdist_egg
- tar:tar 文件
- zip:zip 文件
- rpm:rpm 文件。bdist --formats=rpm 等价于 bdist_rpm
- msi:microsoft installer,Windows 上的可执行的 installer。bdist --formats=msi 等价于 bdist_wininst
-
python setup.py bdist_wheel
上传到 PYPI
register 和 upload 命令
其他
include_package_data
如果将 include_package_data 设置为 True,那么 Setuptools 会 自动地安装 包目录下
的所有数据文件,这些数据文件必须在 CVS 或 Subversion 的控制之下,或者必须通过 distutils 的 MANIFEST.in 文件指定它们。
package_data 文件必须在包内
如果数据文件不在 VCS 控制之下,或者在一个不被支持的 VCS 控制之下,或者想要细粒度地控制包含哪些文件,那么需要使用 package_data 关键字参数。
data_files 文件不在包目录下时使用
data_files
不支持 glob
通配符。