第十八章 程序打包
本章重点介绍Setuptools,因为这是每个Python程序员都要用到的工具。实际上,Setuptools 并非只能用于创建基于脚本的Python安装程序,还可用于编译扩展。另外,通过将其与扩展py2exe 和py2app结合起来使用,还可创建独立的Windows和macOS可执行程序。
18.1 Setuptools 基础
安装setuptools:
C:\Windows\system32>pip install setuptools Requirement already satisfied: setuptools in c:\python37\lib\site-packages (39.0.1)
简单的Setuptools安装脚本(setup.py)
#setup.py from setuptools import setup setup(name='Hello', version='1.0', py_modules=['hello'])
运行结果:
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help error: no commands supplied ------------------ (program exited with code: 1) 请按任意键继续. . .
同时在setup.py所在的目录中创建了一个pycache新的目录,其内包含一个setup.cpython-37.pyc文件。
试执行命令 build 运行结果:
E:\pythonProjects>python setup.py build running build running build_py creating build creating build\lib copying hello.py -> build\lib E:\pythonProjects>
创建了build目录且在其中包含了源文件hello.py。
执行install命令结果:
E:\pythonProjects>python setup.py install running install running bdist_egg running egg_info creating Hello.egg-info writing Hello.egg-info\PKG-INFO writing dependency_links to Hello.egg-info\dependency_links.txt writing top-level names to Hello.egg-info\top_level.txt writing manifest file 'Hello.egg-info\SOURCES.txt' reading manifest file 'Hello.egg-info\SOURCES.txt' writing manifest file 'Hello.egg-info\SOURCES.txt' installing library code to build\bdist.win-amd64\egg running install_lib running build_py creating build\bdist.win-amd64 creating build\bdist.win-amd64\egg copying build\lib\hello.py -> build\bdist.win-amd64\egg byte-compiling build\bdist.win-amd64\egg\hello.py to hello.cpython-37.pyc creating build\bdist.win-amd64\egg\EGG-INFO copying Hello.egg-info\PKG-INFO -