python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

时间:2024-03-20 08:27:20

1.python发布exe文件。

python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速。

1.安装方法:

在cmd中输入pip install pyinstaller   (会自动下载future,pywin32,pyinstaller)

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

后记:

1、在cmd中,输入 pyinstaller -F test.py即可进行打包

注意test.py的路径文件,可以直接拖进cmd中这样便自带路径

2、打包好的exe程序提示在C:\Users\xxxx\dist文件夹下

3、pyinstaller打包后运行提示找不到模块

 

在打包时候,并没有提示错误,可以顺利打包成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

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

然后输入命令打包exe,包括制定ico图标以及虚拟环境使用到的模块和去掉cmd黑框

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

 

格式为pyinstaller.exe -F –i 空格+图标 空格+文件名.py 空格–p 空格+虚拟环境使用到的模块文件夹路径 –noconsole

 

打包完成后,在dist文件夹中就会看到生成的exe文件。

这个exe就可以到别的电脑上正常使用了。

 

  2.利用pm2管理pythonexe程序。

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单

Python也有他自己的进程管理工具,但是个人认为nodejs的pm2比较好用些。

先上https://nodejs.org/en/官网下载node。然后安装。

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

我这里用的是官网上据说目前大多数人用得最多的10.15.1版本。

双击根据提示安装完成后。就开始安装pm2.

Pm2的离线安装包https://download.csdn.net/download/cai901022/10962343

 

cmd直接npm install -g pm2

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

因为要方便管理。我在用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

 

 

python开发之Flask学习2——python程序exe发布及第一个Flask程序(二)

 

 

后记:

 

安装

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