当前位置: 首页 > news >正文

Python程序打包 |《Python基础教程》第18章笔记

《Python基础教程》第1章笔记👉https://blog.csdn.net/holeer/article/details/143052930

第18章 程序打包

程序可以发布后,你可能想先将它打包。如果程序只包含一个.py文件,这可能不是问题。然而,如果用户不是程序员,即便是将简单的Python库放到正确的位置或调整PYTHONPATH也可能超出了其能力范围。用户通常希望只需双击安装程序,再按安装向导说的做就能将程序安装好。

Python程序员有较低级的接口可以使用。Setuptools是用于发布Python包的工具包,让你能够使用Python轻松地编写安装脚本。这些脚本可用于生成可发布的归档文档,供用户编译和安装你编写的库。

本章重点介绍Setuptools,因为这是每个Python程序员都要用到的工具。实际上,Setuptools并非只能用于创建基于脚本的Python安装程序,还可用于编译模块。另外,通过将其与py2exe和py2app结合起来使用,还可创建Windows和macOS平台上的独立的可执行程序。

18.1 Setuptools基础

“Python打包用户指南”(packaging.python.org)和Setuptools官网(http://setuptools.readthedocs.io)有很多相关的文档。使用Setuptools可完成很多任务,只需编写像代码清单18-1这样简单的脚本即可。

代码清单18-1 简单的Setuptools安装脚本(setup.py)

from setuptools import setup
setup(name='Hello',
      version='1.0',
      description='A simple example',
      author='Magnus Lie Hetland',
      py_modules=['hello'])

以上代码中,函数setup的所有参数都是可选的。请确保setup.py与简单模块hello.py在同一目录下,然后执行python setup.py build,示例输出如下。

running build
running build_py
creating build
creating build/lib
copying hello.py -> build/lib

如输出所示,在命令build执行过程中,Setuptools创建了一个名为build的目录,其中包含子目录lib,然后将hello.py复制到了这个子目录中。目录build相当于工作区,Setuptools在其中组装包并编译扩展库。

如果执行安装命令install,则会自动运行命令build,然后将模块hello.py复制到PYTHONPATH指定的特定目录中,在此过程中会创建一个.egg文件,这是一个独立的Python包。目前没有标准的uninstall命令,因此需要手工卸载安装的模块。

18.2 打包

通过对setup.py稍作修改,你可以用它来创建Windows安装程序、RPM包、egg文件、wheel文件等(wheel将最终取代egg)。本节只介绍如何创建源代码归档文件.tar.gz

执行命令python setup.py sdist(sdist = source distribution),进行源代码归档。注意,归档规范建议在setup.py中添加author_email选项,在当前目录中添加README.md。命令执行完成后,在当前目录下应该会多出一个dist目录。在这个目录中有一个名为Hello-1.0.tar.gz的文件。你可将其分发给他人,而对方可将其解压缩,再使用脚本setup.py进行安装。

18.4 使用py2exe创建可执行程序

py2exe是Setuptools的一个扩展(可通过pip来安装它),让你能够创建可执行的Windows程序(.exe文件)。这在你不想给用户增加单独安装Python解释器的负担时很有用。py2exe包可用来创建带GUI(参见第12章)的可执行文件。下面将使用这个非常简单的示例:

print('Hello, world!')
input('Press <enter>')

创建一个空目录,再将这个文件(hello.py)放到这个目录中,然后创建一个类似于下面的setup.py文件:

from distutils.core import setup
import py2exe
setup(console=['hello.py'])

运行脚本:python setup.py py2exe

这将创建一个控制台应用程序(dist\hello.exe)。

有关py2exe的工作原理和高级用法的详细信息,请参阅py2exe官网(http://www.py2exe.org)。如果你使用的是macOS,py2app提供了类似的功能(http://pythonhosted.org/py2app)。

要让别人能够使用pip安装你开发的包,必须向Python Package Index(PyPI)注册它,详见标准库文档。

相关文章:

  • SQLAlchemy 中字段类型与常见数据库(MySQL、PostgreSQL 和 SQLite)的全面映射关系
  • 在VS中通过vcpkg包管理器来安装使用qt5
  • Win11网络受限问题解决方案
  • AWS CodeBuild 配置完整指南
  • 读书笔记 - 修改代码的艺术
  • 【SQL教程|07】sql中条件查询where用法示例
  • 如何正确安装Python----Python安装的避坑指南
  • Swagger 转 Word 技术方案
  • DeepSeek:开启智能时代的新引擎
  • DeepSeek NSA:突破数据瓶颈,开启AI模型训练新范式
  • 算法1-2 Bookself B
  • 几个C#上位机相关的工具库
  • 使用Java爬虫获取京东商品SKU信息的完整指南
  • Ubuntu18.04/20.04开机自启运行脚本
  • Python利用markdown库实现Markdown到HTML的高效转换(附安全处理与样式扩展)
  • Pytorch实现论文之三元DCGAN生成RGB图像用于红外图像着色生成
  • JavaScript 基础入门——数组的操作与应用
  • h5、vue3抓拍功能
  • centos 9 时间同步服务
  • RESTful API的设计原则是什么?
  • 人民网:激发博物馆创新活力,让“过去”拥有“未来”
  • 著名文博专家吴远明因交通事故离世,享年75岁
  • 杨建全已任天津市委副秘书长、市委市政府信访办主任
  • 中办、国办关于持续推进城市更新行动的意见
  • 外交部:中方对美芬太尼反制仍然有效
  • 加拿大新政府宣誓就职