Python 程序的发布方式通常包括可执行程序和安装包、生成pyc文件及WEB应用部署。
可执行程序和安装包
在Windows环境下制作Python程序的可执行程序和安装包。
使用 Pyinstaller、py2exe 将 Python 源代码打包成单个的 exe 可执行程序或者一个文件夹。以 Pyinstaller 为例:
PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行。打包命令:pyinstaller -F app.py,更多常用选项:
进一步使用NSIS制作Python程序安装包(安装程序打包工具NSIS)。
NSIS (Nullsoft Scriptable Install System) 是 Windows 下的一个安装程序创建工具,NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等。安装的过程是基于脚本文件,可以让你像设计普通程序一样来创建安装程序。
使用NSIS文件夹压缩器制作经典界面的自解压文件。
使用NSIS VNISEdit编译器制作软件安装包。
参考《使用NSIS制作Python程序安装包》。
生成pyc文件
pyc文件是py文件经过编译后生成的跨平台字节码文件(byte code)。pyc文件由python的虚拟机执行,经过python解释器最终会生成机器码运行,类似于JAVA或者.NET的虚拟机的概念。使用 pyc 文件发布Python程序的优点在于pyc文件是编译代码,不会泄漏源码。
生成pyc文件的命令:python -m app.py
WEB应用部署
示例方案1:flask + nginx + gunicorn +supervisor
示例方案2:Nginx+Gunicorn+virtualenv+supervisor+PostgreSQL
a.flask/Django:基于Python的轻量级web框架
b.Apache/nginx:反向代理服务器
c.Gunicorn/uWSG:WSGI容器,Python Web服务器网关接口HTTP服务器
d.Virtualenv:Python虚拟环境管理工具,所谓虚拟环境就是讲你Web应用所需要的python环境从系统的python环境中独立出来,这使得你可以在不同的应用中使用不同版本的第三方库。
e.Supervisor:进程管理工具,保证你的程序在服务器开机时自动启动以及程序意外终止时重新启动。
f.MySQL/PostgreSQL/SQLite:数据库
《Django的部署:Nginx + Gunicorn + virtualenv + supervisor + PostgreSQL》和《Python WEB应用部署的实现方法》有相关详细说明,《部署基于python语言的WEB发布环境》更包括Centos7.5 + Nginx + python + Django + uwsgi + mysql全流程系统配置。
使用 TestPyPI 服务可以快速分发软件,消除了配置服务器并任何手动安装和更新软件包到操作系统的过程。
👍
楼主残忍的关闭了评论