【Python】Pyinstaller打包Linux运行文件,暴露配置文件


风晓
风晓 2024-01-09 14:45:42 51885 赞同 0 反对 0
分类: 资源
【Python】Pyinstaller打包Linux运行文件,暴露配置文件

Pyinstaller可以将python程序打包成可执行文件,在windows上是exe文件,在linux上是二进制可执行文件。
工作中有需求是把本地python工程打包成后台可运行的服务,考虑到部署环境的不同,可以使用docker镜像的方式,也可以使用pyinstaller打包成可执行文件:

docker镜像的好处是运行起来后可以替换内部的文件,当程序修改之后可以不需要再进行打包,使用docker cp命令直接替换容器内的文件就可以了,适合于开发环境;但缺点是安装包的体积比较大,打包的torch项目镜像体积在8G+,非常感人;
pyinstaller的好处是安装包比较小,直接在服务器上运行,不依赖docker或其他python环境,缺点就是灵活性比较小,程序修改之后需要重新打包,适合于正式环境;
考虑到系统要用在正式环境上,所以还是选择Pyinstaller的打包方式,因为刚接触,所以很多地方不懂,比如需要把配置文件放在外面,要怎么打包才可以实现呢;还有之前遇到的本地环境运行正常,但是打包完成之后就没有办法获取配置文件中的配置了?

第二个问题我们已经在上篇中解决了,有兴趣可以看看Pyinstaller打包后程序运行报错configparser.NoSectionError: No section:XX问题解决

对于第一个问题,其实也很简单,就是使用--add-data参数,将外部文件添加进运行程序中,比如我要将“config.ini”文件放到运行的根目录下面,就可以使用下面的打包命令:

pyinstaller --add-data "config.ini:." -F -w yourscript.py

执行完就可以在dist目录下面看到二进制的可执行文件,比如这里是yourscript。
运行的时候将config.ini与打包出来的可执行文件放在同一目录下面,按照需要修改config.ini中的配置,然后再运行程序,系统中读取config.ini的地方就可以获取到你修改的配置了。

最后,将二进制文件和配置文件上传到服务器之后,可以使用nohup命令进行后台运行:

nohup yourscript > log.out 2>&1 &

日志文件会保存在log.out文件中,可以使用tail -f log.out查看日志的生成情况。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  126
统信桌面专业版【全盘安装UOS系统】介绍  121
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!