python打包成.exe程序的三种方式

1.pyinstaller 打包

这里以打包一个简单fastapi服务为例子

环境

python 3.6.7
pyInstaller 4.7
FastApi 0.70.0
unicorn  0.15.0

extra-hook/hoks-unicorn.py

from PyInstaller.utils.hooks import get_package_paths
datas = [(get_package_paths('uvicorn')[1], 'uvicorn')]

执行命令

pyinstaller -y --clean --additional-hooks-dir extra-hooks foo.py

foo.spec添加

hiddenimports=['uvicorn.lifespan.off','uvicorn.lifespan.on','uvicorn.lifespan',
'uvicorn.protocols.websockets.auto','uvicorn.protocols.websockets.wsproto_impl',
'uvicorn.protocols.websockets_impl','uvicorn.protocols.http.auto',
'uvicorn.protocols.http.h11_impl','uvicorn.protocols.http.httptools_impl',
'uvicorn.protocols.websockets','uvicorn.protocols.http','uvicorn.protocols',
'uvicorn.loops.auto','uvicorn.loops.asyncio','uvicorn.loops.uvloop','uvicorn.loops',
'uvicorn.logging']

执行

pyinstaller foo.spec

2.cx_Freeze

这里以打包一个简单fastapi服务为例子

环境

python 3.6.8
FastApi 0.70.0
unicorn  0.15.0
cx-Freeze 6.8.3

构建setup.py

import sys
from cx_Freeze import setup, Executable

sys.path.append(r'../')
 
os.environ['TYPE'] = "red"


build_exe_options = {'packages': ['uvicorn', 'fastapi'],# 指定包
                     'excludes': [],
                     'include_files': []# 包含的静态文件
                     }
base = None
if sys.platform == 'win32':
  base = 'Win32GUI'

setup(name = 'runFastApi',
        version = '1.0.0',
        description = '测试fastapi部署服务',
        options = {'build_exe': build_exe_options},
        executables = [Executable('foo.py', base=base)])

    foo.py

from fastapi import FastAPI
import uvicorn


app = FastAPI(
        title="SERVER",
        description="",
        version="1.0.0",
    )


@app.get("/")
async def read():
    return {"Hello": "World"}


#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
if __name__ == '__main__':
    uvicorn.run(
        app=app,
        host="0.0.0.0",
        port=9192
    )

3.pyarmor

这里以打包一个简单fastapi服务为例子

环境

python 3.6.8
FastApi 0.70.0
unicorn  0.15.0
pyarmor 7.0.3

打包

pyarmor pack foo.py

可以通过可视化界面进行混淆打包

pip install pyarmor-webui
# 启动
pyarmor-webui -p 9088
Python程序打包.exe文件可以方便地在Windows系统中运行程序,而不需要安装Python解释器。以下是一些常用的Python打包工具: 1. PyInstaller:一个流行的Python打包工具,它可以将Python代码和依赖项打包成单个可执行文件。 2. cx_Freeze:一个跨平台的Python打包工具,可以将Python代码和依赖项打包成单个可执行文件。 3. py2exe:一个将Python代码打包成Windows可执行文件的工具,它可以将Python程序转换为独立的.exe文件,也可以作为DLL文件使用。 4. PyOxidizer:一个比较新的Python打包工具,可以将Python代码和依赖项打包成单个可执行文件,支持多平台。 这里以PyInstaller为例,介绍如何将Python程序打包.exe文件: 1. 安装PyInstaller:可以使用pip命令进行安装,打开命令行窗口输入以下命令: ``` pip install pyinstaller ``` 2. 打包Python程序:将需要打包Python程序放置在一个文件夹中,打开命令行窗口,进入该文件夹,并执行以下命令: ``` pyinstaller --onefile your_program.py ``` 其中,your_program.py是你要打包Python程序的文件名。执行该命令后,PyInstaller会在dist文件夹中生成一个可执行文件。 3. 运行打包后的程序:在dist文件夹中找到刚刚生成的可执行文件,双击运行即可。 注意事项: 1. 打包过程中,使用到的Python模块需要在打包前先安装好。 2. 打包后的可执行文件有时会比较大,需要注意文件大小。 3.打包时,需要注意程序的依赖项是否正确,否则打包后的程序可能无法正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值