码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Python】Pyinstaller打包Linux运行文件,暴露配置文件


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

    1. docker镜像的好处是运行起来后可以替换内部的文件,当程序修改之后可以不需要再进行打包,使用docker cp命令直接替换容器内的文件就可以了,适合于开发环境;但缺点是安装包的体积比较大,打包的torch项目镜像体积在8G+,非常感人;
    2. pyinstaller的好处是安装包比较小,直接在服务器上运行,不依赖docker或其他python环境,缺点就是灵活性比较小,程序修改之后需要重新打包,适合于正式环境;

    考虑到系统要用在正式环境上,所以还是选择Pyinstaller的打包方式,因为刚接触,所以很多地方不懂,比如需要把配置文件放在外面,要怎么打包才可以实现呢;还有之前遇到的本地环境运行正常,但是打包完成之后就没有办法获取配置文件中的配置了?

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

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

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

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

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

    nohup yourscript > log.out 2>&1 &
    
    • 1

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

  • 相关阅读:
    MySQL之创建数据库,MySQL数据类型
    2022年上半年系统分析师上午真题及答案解析
    Redis的优势
    VMware Workstation中安装FusionCompute 6.5.1_CNA
    linux目录内容详解
    Python 基于 urllib 使用 Handler 处理器(代理)
    LINE Verda Programming Contest (AtCoder Beginner Contest 263) A~E 题解
    linux设备模型:固件设备及efi固件(平台)设备节点创建过程分析
    Spring Boot+Vue3前后端分离实战wiki知识库系统之Vue3 + Vue CLI 项目搭建
    移动端文字异常放大解决方法
  • 原文地址:https://blog.csdn.net/zhoulizhu/article/details/134439530
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号