Python打包工具setuptools的使用

将我们写的Python程序发布成包后,可以使其能够安装使用。

在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试。

setuptools是常用的打包工具。

一个简单的setup.py文件如下:

from setuptools import setup, find_packages
setup(
    name = "my_demo",
    version = "0.1",
    packages = find_packages()
)

其中,name是包的名字,version是版本。

给packages指定find_packages(),意为包括在本目录下的所有Python包。

什么是Python包呢?在Python 3.2及更早版本中,只有包含__init__.py文件才能识别为Python包。

那要是不想包含某些包呢?给find_packages指定exclude参数即可。

那如果我们想将数据文件也添加进来呢?有以下方法(以下:package_data:数据文件,即一些txt或者dat文件 ):

方法一

在使用版本控制的情况下(先包含全部数据文件,再指定去除):

packages = find_packages(‘src‘),  # 包含所有src目录下的package
    package_dir = {‘‘:‘src‘},   

    include_package_data = True,    # 包含所有版本控制的内容

    # 排除所有 README.txt
    exclude_package_data = { ‘‘: [‘README.txt‘] }

方法二(直接指定包含哪些数据文件):

packages = find_packages(‘src‘),  # 包含所有src中的包
    package_dir = {‘‘:‘src‘},   # 告诉distutils包都在src下

    package_data = {
        # 如果包中含有.txt文件,则包含它
        ‘‘: [‘*.txt‘],
        # 包含demo包data文件夹中的 *.dat文件
        ‘demo‘: [‘data/*.dat‘]
}

其他的一些常用参数:

zip_safe,指定boolean选项,控制项目能否直接通过压缩文件安全安装。

install_requires:安装依赖

entry_points: 创建控制台脚本 详情

等等

可以使用命令:

python setup.py bdist_egg

来创建egg文件,egg文件可以跨平台,便于使用pip安装。

也可以使用命令:

python setup.py sdist

来创建源发布版本

其他一些setup.py文件的参数选项:
 python setup.py build     #编译
 python setup.py install    #安装
 python setup.py sdist      #制作分发包
 python setup.py bdist_wininst    #制作windows下的分发包
 python setup.py bdist_rpm

参考:

https://setuptools.readthedocs.io/en/latest/setuptools.html

原文地址:https://www.cnblogs.com/geeklove01/p/8280939.html

时间: 2024-09-29 20:07:41

Python打包工具setuptools的使用的相关文章

[转]Python打包工具

作者:Tarek Ziadé,翻译:张吉 原文:http://www.aosabook.org/en/packaging.html 转载地址:http://www.ituring.com.cn/article/19090 14.1 简介 对于如何安装软件,目前有两种思想流派.第一种是说软件应该自给自足,不依赖于其它任何部件,这点在Windows和Mac OS X系统中很流行.这种方式简化了软件的管理:每个软件都有自己独立的“领域”,安装和卸载它们不会对操作系统产生影响.如果软件依赖一项不常见的类

python打包工具distutils、setuptools分析

在上一篇博文中总结了python中导入包,安装包一条完整的线路.其中有一个有意思的知识点,安装包的方式有很多种,模块和包管理中打包,发布,安装也是值得研究的内容. python中安装包的方式有很多种: 源码包:python setup.py install 在线安装:pip install 包名(linux) / easy_install 包名(window) python包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用.打包和安装包就是最常见

最详细的Python打包工具:Pyinstaller实战指南,如丝滑般体验

写了个吊炸天的Python项目,把我和左手相处的时间都赔上了.但出于版权考虑,我不太想让使用方直接用我的代码,毕竟Python代码给出去,就真的收不回来了. 想给客户演示的时候,不想那么墨迹的打开dos cmd 或者 terminal ,然后运行 python app.py 这样的命令行.最好是客户双击,完事儿.就像有人在那自己动一样-- PyInstaller 来了,他就是这么一款帮助我们把整个项目完整打包的工具.目前已经兼容Py3.7,以及 Mac App 和 Windows Exe. 文档

Python 打包工具cx_freeze 问题记录及解决办法

在节前的最后一天,解决了打包过程中遇到的所有问题,可以成功运行了!真是个好彩头,希望新的一年一切顺利! 以下是在使用cx_freeze过程中遇到的问题及解决办法(Win7) 问题描述:运行exe,启动无数个主程序,导致系统无法使用   原因:在程序中使用了multiprocessing的包   解决办法:在主文件if __name__ == "__main__":后,添加multiprocessing.freeze_support(),一定要在添加在最开始处 2. 问题描述:运行后,提

python版本管理工具pyenv和包管理工具pipenv

一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理virtualenv虚拟环境,可以自己创建virtualenv或者通过pyenv-virtualenv来自动化创建虚拟环境 pyenv通过PATH环境变量来匹配切换python或者pip的工作目录,pyenv通过读取工作环境来指定使用哪个python版本,如在当前会话中查找PYENV_VERSION环

Python 打包中 setpy.py settuptools pbr 的了解

背景 nova服务构建失败,报错: 'tests_require' must be a string or list of strings containing valid project/version requirement specifiers 概述 推荐-Python 包管理工具解惑 openstack/nova setup.py 孔令贤-关于python中的setup.py 簡單的插件框架 - 使用 pkg_resources python setup.py --help-comman

Windows+Linux安装Python工具setuptools

Windows+Linux安装Python工具setuptools setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况. 经常接触Python可能会注意到,当需要安装第三方pytho

python之模块distutils,打包工具

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块distutils,打包工具 import distutils #distutils包有2个目的: 1)distutils希望让最终用户觉得安装新模块.包和工具的过程一致而轻松 2)distutils希望让新模块.包和工具的开发者觉得创建这些容易安装的分发包很轻松 总得来说,distutils就是用来打包的模块. #2.用distutils如何打包? #http://blog.csdn.

Python打包成exe工具

Python是一个应用很广泛的编程语言,当然少不了GUI 在Windows下可以有很多GUI库选择去写图形程序,但写好之后想在其他电脑上运行,必须要有python解释器环境. 解决这个问题就要用打包工具了,把python源码打包成exe之后就可以拷贝到其他电脑上运行了. 目前了解的有下面几种,常用的pyinstaller和cx_freeze: 1.py2exe 官方主页:   http://www.py2exe.org/ 2.pyinstaller 官方主页:   http://www.pyin