• pyinstaller


    pip install 进行安装,将自动安装好依赖,
    pyinstaller -F 要打包的文件,这种适用于一个文件的包,如果是要打包一个文件夹换参数

    最好使用32位的机器和环境来打包,因为64大的包32位机器可能不兼容,

    如果py脚本中有sys.argv传参。生成的exe文件就可以直接使用命令行 xxx.exe 参数1,参数2.....进行传值

    问题,用64位win7打包传参卡住,即使不用arhv也是堵塞状态。

    猜测,32位机器来打包,可能会解决

    场景:在windows主机上做fping检测。
    做了一个fping的脚本,使用下载下来的fping.exe文件来执行,windows上的fping和linux上的fping参数不同,需区别对待。最后将文件一起打包放入我们的监控agent客户端中。使客户端启动的时候自动支持fping的检测

    解决:

    1. py脚本中使用的模块是subprocess和sys模块,使用sys.argv来接收传入参数,subprocess.popen来执行终端的命令,
    2. 对执行结果进行拆分,得出结果
    3. 将fping.exe文件和py脚本都放到要打包的文件夹中,直接在agent.d文件夹中配置好userparamsters.conf文件,其中配置的就是我们fping的自定义key,这里需要注意,自定义key传参时,直接使用 $1 $2 $3 $4 来进行传参,但是windows跟linux不通的一点在于,windows中如果$1 $2 $3。。。没有接受到参数是不会给程序传入控制'' 的,而在linux中会,所在在配置自定义key的时候需要使用 "" "$1" "$2" 这样才能传入空值。在zabbix中使用这个key的时候,可以在[]中什么也不写, , 也不用写,自动就会填入空值。
    4. 将准备好的整个文件夹压缩成一个包,(注意目录层级,以及文件的完整性)在setup.py中配置pyinstaller的打包参数,
      '--add- 包.zip'
    5. 执行setup.py文件, python setup.py
    6. 打包完成后,在dist文件夹下就会看到打好的包

    注意,打包尽量用低版本的系统来进行打包,不然高版本系统打的包低版本使用不了,相反,低版本打的包对高版本系统兼容

  • 相关阅读:
    [转载] 关于mkvtoolnix批量处理的
    转载:JMeter压力测试入门教程[图文]
    分享 stormzhang的Andoid学习之路
    Sublime Text 2 插件
    PHP 操作SQLite
    curl 远程下载图片
    centos lamp 配置
    php 例子 如何转换ISO8601为 utc时间
    php 常用 常量集合
    php 文档操作
  • 原文地址:https://www.cnblogs.com/cizao/p/11484322.html
Copyright © 2020-2023  润新知