1.python发布exe文件。
python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速。
1.安装方法:
在cmd中输入pip install pyinstaller (会自动下载future,pywin32,pyinstaller)
后记:
1、在cmd中,输入 pyinstaller -F test.py即可进行打包
注意test.py的路径文件,可以直接拖进cmd中这样便自带路径
2、打包好的exe程序提示在C:\Users\xxxx\dist文件夹下
在打包时候,并没有提示错误,可以顺利打包成exe文件。但是在运行打包好的软件时,会提示找不到模块,本人遇到的是找不到第三方模块,例如requests。这时候需要在打包时指定-p参数,后面跟上python目录下的第三方库模板目录路径site-packages。再打包就成功了
pyinstaller example.py -F -p C:/python/lib/site-packages
4、如果需要给exe程序带上图标,可以网上自行下载.ico后缀名的图片,然后使用命名
pyinstaller -F -i test.ico test.py
注意路径
最后需要注意的是,需要移动下生成可执行程序的位置,才可以显示图片
5、打包多个py文件并且去除cmd黑框
格式:pyinstaller.exe -F 路径\文件名.py空格路径\文件名.py空格--noconsole
2.使用方法:
在项目文件中,按shitft+右键组合。打开cmd
然后输入命令打包exe,包括制定ico图标以及虚拟环境使用到的模块和去掉cmd黑框
格式为pyinstaller.exe -F –i 空格+图标 空格+文件名.py 空格–p 空格+虚拟环境使用到的模块文件夹路径 –noconsole
打包完成后,在dist文件夹中就会看到生成的exe文件。
这个exe就可以到别的电脑上正常使用了。
2.利用pm2管理python的exe程序。
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单
Python也有他自己的进程管理工具,但是个人认为nodejs的pm2比较好用些。
先上https://nodejs.org/en/官网下载node。然后安装。
我这里用的是官网上据说目前大多数人用得最多的10.15.1版本。
双击根据提示安装完成后。就开始安装pm2.
Pm2的离线安装包https://download.csdn.net/download/cai901022/10962343
cmd直接npm install -g pm2
因为要方便管理。我在用bat写多一个脚本来管理运行下。新建一个文本文件,后缀改为.bat。内容如下。里面路径自行修改哈。
@echo off
:dosmenu
REM 选择菜单
echo #**********************************************************************#
echo pm2守护进程服务启动脚本
echo #**********************************************************************#
echo 命令相关参数说明如下 快速切换
echo #**********************************************************************#
echo.
echo [1]启动pm2 [2]关闭pm2 [3]重启pm2
echo 其它键退出本程序
echo.
echo #**********************************************************************#
set /P CHS= 请选择: [1],[2],[3] 后回车?
if /I "%CHS%"=="1" (
goto 1111
)
if /I "%CHS%"=="2" (
goto 2222
)
if /I "%CHS%"=="3" (
goto 3333
)
goto eeee
:1111
REM 启动C:\myPycharm\myFlask\dist\app.exe
pm2 start C:\myPycharm\myFlask\dist\app.exe
pause
cls
goto dosmenu
:2222
REM 关闭进程
pm2 stop all
pause
cls
goto dosmenu
:3333
REM 重启所有进程
pm2 restart all
pause
cls
goto dosmenu
:eeee
REM 退出
exit
后记:
安装
1 |
npm install -g pm2 |
用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start # 正确的进程数目依赖于Cpu的核心数目 $ pm2 start app.js --name my-api # 命名进程 $ pm2 list # 显示所有进程状态 $ pm2 monit # 监视所有进程 $ pm2 logs # 显示所有进程日志 $ pm2 stop all # 停止所有进程 $ pm2 restart all # 重启所有进程 $ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程) $ pm2 stop 0 # 停止指定的进程 $ pm2 restart 0 # 重启指定的进程 $ pm2 startup # 产生 init 脚本 保持进程活着 $ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615) $ pm2 delete 0 # 杀死指定的进程 $ pm2 delete all # 杀死全部进程 |
运行进程的不同方式:
1 2 3 4 5 6 7 8 9 |
$ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目 $ pm2 start app.js -i 3 # 启动3个进程 $ pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster $ pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23) $ pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone $ pm2 stop serverone # 停止 serverone 进程 $ pm2 start app.json # 启动进程, 在 app.json里设置选项 $ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数 $ pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件 |
你也可以执行用其他语言编写的app ( fork 模式):
1 2 |
$ pm2 start my-bash-script.sh -x --interpreter bash $ pm2 start my-python-script.py -x --interpreter python |