pyinstaller的坑


python版本:python 2.7

      python 3.7

编译器:Pycharm

python有着很多将 py文件转化为exe可执行文件,其中pyinstaller用的最广泛

但是pyinstaller编译的同时坑也随之出现

一、pyinstaller安装

1. python2.x  : pip installer pyinstaller

2. python3.x  : pip3 installer pyinstaller

3. pycharm    :请在setting中设置(这里不做详解)

二、使用命令

基本命令  :pyinstaller xx.py  会产生一些依赖文件不能单独运行

普通命令  :pyinstaller -F xx.py   将产生的依赖文件整合在exe文件中

加入图标命令  :pyinstaller -F -i xx.ico xx.py

三、转化过程中的坑

1、

命令输入错误

2、加入图标时报错  struct.error: unpack requires a string argument of length 16

选用的图标必须为16*16格式,将格式转化为16*16即可成功

3、图片格式必须为ico格式不然也会报错

4、运行后乱码情况或编译为exe文件时报错UnicodEerror

  cmd命令框窗口使用的编码格式为gbk

  在py文件中,在首行写入# -*- coding:gbk -*-

四、关于python2.x与python3.x打包之后的区别

python2.x

1.python2.x对于导入的模块会进行自动整合进exe文件中

2.对于输入函数,如果输入的为字符串需要使用str(raw_input())函数

3.使用python2.x的时候必须首行写入 # -*- coding:utf-8 -*-,不然输入汉字会报错,或者运行乱码

  在pyinstaller编译前将utf-8改为gbk

python3.x

1.相比于python2.x,模块并不会自动整合到exe文件中,运行时会报错缺少xx模块

  使用命令解决:pyinstaller -F -p 模块路径 xx.py

2.对于输入函数,python3.x取消了raw_input()的字符输入,统一使用input()函数,输入的内容统一以字符格式

  在形成的exe文件后执行输入字符时,必须要用   ' '  将输入的文字表示为字符

3.相比于python2.x,python3.x不需要在首行写入# -*- coding:utf-8 -*- 也能自动识别汉字

  在转化为exe文件时,依然需要写入# -*- coding:gbk -*-避免乱码以及不必要的错误

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM