zoukankan      html  css  js  c++  java
  • PyInstaller打包python脚本

    用python写的工具写好了,想打包然后发给测试同事使用,最后选择了PyInstaller,支持Windows、Linux、OS X,支持打包成一个文件夹或单个EXE文件。
     
    我是直接在线安装的,在CMD输入:pip install pyinstaller
    自动下载了PyInstaller-3.1.1.tar.gz和pypiwin32-219-cp27-none-win_amd64.whl并安装。
     
    如果不行也可以去官网自己下载安装(http://www.pyinstaller.org/),不过应该要先安装pypiwin32。
     
    安装后,把要打包的文件main.py(界面),b.py(逻辑,在main中调用),config.ini(配置文件)复制到F:pkg
     
    在CMD中进入F:pkg,输入:pyinstaller main.py
    然后就在F:pkg生成build和dist文件夹和一个main.spec配置文件,dist下就是打包好的文件了,运行main.exe,一闪就没了,在CMD再次运行,报错是找不到ini文件,把ini复制到dist下,再次运行,可以了。
     
    但是运行main.exe后,会多出一个CMD窗口。后面搜索后查找有一个参数-w, --windowed, --noconsole
    可以关闭控制窗口。
     
    删除打包的文件,重新打包:pyinstaller -w --windowed --noconsole main.py
    将config.ini复制过去后再次运行,OK了,这次没有控制窗口了,不过程序在调用subprocess时,仍会闪现一下控制窗口,不过没关系了,这也算间接提示我命令运行了吧。但我的程序后来还遇到个问题,有个函数以此方法打包,会无法调用。
     
     
     
    然后再想,打包不可能需要手动复制ini文件的,应该可以一起打包进去。
    再次查询pyinstaller的官方wiki,发现可以编辑main.spec实现。类似这样
    a = Analysis(...
         datas=[ ('src/README.txt', '.') ],
         ...
         )
    只要修改datas元组就可以了。第一参数是文件目录,第二个参数是放在打包好的文件的目录,'.'就是首级目录了
     
    修改后,再运行命令pyinstaller -w --windowed --noconsole main.spec
    OK了,这次打包的时候直接就把config.ini打进去了,不过我怎么觉得还是我复制过去更方便呢。。。
     
     
     
    以上打包都是打成一个文件夹,后来试了下打成单个EXE
    命令:pyinstaller -F -w --windowed --noconsole main.py
    然后同样把config.ini复制过去就OK了
     
     
     
    然后我们可以加个图标。首先找个图片,然后去http://www.ico.la/转换一下格式,我选的128*128
    将保存的图片ico.ico放到F:pkg
    输入命令:pyinstaller -F -w --windowed --noconsole -i ico.ico main.py
     
     
    参考:
    官方WIKI:http://pythonhosted.org/PyInstaller/#using-spec-files
    http://www.cnblogs.com/mywolrd/p/4756005.html
    http://www.crifan.com/use_pyinstaller_to_package_python_to_single_executable_exe/
    http://www.cnblogs.com/DxSoft/archive/2010/05/14/1735199.html
     

    --------------------------------------------------------------------------------

    关注微信公众号(测试工程师小站)即可在手机上查阅,并可接收更多测试分享,发送【测试资料】更可获取百G测试教程~

  • 相关阅读:
    Fedora下使用minicom及USB串口线
    fedora装机后要运行的脚本(原创)
    终极 Shell
    深入学习 Git 工作流
    如何使用Git上传项目代码到github
    Fedora23 chrome 安装
    Fedora下安装deb包方法
    vim自动缩进设置
    Fedora 20 安装搜狗拼音输入法
    C语言stat()函数:获取文件状态
  • 原文地址:https://www.cnblogs.com/songzhenhua/p/9312763.html
Copyright © 2011-2022 走看看