1. 新建hello项目文件,新增hello.py为主程序
import time
def main():
print("Hello World")
time.sleep(5)
if __name__ == '__main__':
main()
2. 在命令行工具进入hello项目文件的上一级目录(父目录),然后输入命令
python -m zipapp hello -o hello.pyz -m "hello:main"
上面命令执行当前目录下的hello子目录下的所有Python源文件打包成一个包,并通过-o选项指定生成包的文件名为hello.pyz, -m选项指定使用hello.py模块中的main函数作为程序入口。
3. 执行hello.pyz
实践项目: myapp
以下命令将Python项目代码和venv依赖包打包成myapp.pyz,可以将myapp.pyz拷贝到其他平台直接执行,不需重新配置venv。这种方式的前提是主程序名须为__main__.py, 并且含有入口函数名为main()。
cd到myapp文件夹的上一级目录(父目录),输入命令
python -m myapp -o myapp.pyz -p "myapp\venv\Lib\site-packages"
参考28.4. zipapp — Manage executable python zip archives — Python 3.6.3 documentation