使用setuptools打包发布Python项目

使用 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 通配符。

上一篇:python中导入matplotlib模块


下一篇:Ubuntu下使用virtualenv创建环境遇到“setuptools pkg_resources pip wheel failed with error code 2”的问题解决方案