pyinstaller打包可执行文件,存放路径包含中文无法运行的解决方案

 更新时间:2021年03月17日 10:52:27   作者:“人生苦短”  
这篇文章主要介绍了pyinstaller打包可执行文件,存放路径包含中文无法运行的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、实验环境

1.Windows7x64_SP1

2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装)

3.pyinstaller3.0

二、问题描述

1.使用如上环境,pyinstaller打包生成的exe文件,存放在本地,如果路径中包含中文,程序无法运行;exe程序如果使用中文命名,程序同样无法运行。

三、解决方式

1.查看pyinstaller网站

https://pypi.org/project/PyInstaller/

2.有如下描述

3.更换实验环境

1.Windows7x64_SP1

2.anaconda3.7 + python3.7(anaconda集成,不需单独安装)

3.pyinstaller3.5        #使用pyinstaller3.0,打包时报错

4.打包exe程序,存放路径包含中文,exe程序可以正常运行

补充:pyinstaller的使用和几个坑

pyinstaller是一个非常简单的打包python的py文件的库。用起来就几条命令就够了

直接pip install pyinstaller 会下载到最新版的 3.3的pyinstaller,和之前版本的语法是不同的,这个版本直接cmd里输入

pyinstaller X:\XXX\XXX.py 就可以了 生成的文件就在c盘user\用户名\dist 下,而用户名文件下还有个buld里面存放了她运行的中间文件,里面有个warn文件详细记录了打包的错误,虽然没什么卵用,但至少可以拿来百度下骗骗自己。。。哈哈

另外说几个非常重要的问题

1.命令使用pyinstaller和pyinstaller.exe结果都是一样的

2.-w是不显示命令窗口, -i 图标文件的路径 这是改变图标的,但是我发现只能改变任务栏里的和命令窗口的图标,并不能改变exe文件的图标。另外这些参数要加载pyinstaller和路径中间。

3.有一些代码需要调用一些图片和资源文件的,这是不会自动导入的,需要你自己手动复制进去才行。不然exe文件运行时命令窗口会报错找不到这个文件。

4.也是最坑的一点。就是当你使用错误的参数去打包或者打包到一半中断,等等此类运行到一半没了的情况。会导致你原来的py文件变成一个0KB的空文件。里面的代码会全部消失!!!所以以后需要有个良好的习惯,就是复制一份代码出来,用这个副本进行打包。并且参数出错,或者打错了导致失败时,检查下副本文件的py文件是否还存在再继续重新打包,不然打出来的就是空的文件,自然一直闪退,因为压根没内容。

5.写代码的时候应当有个良好的习惯,用什么函数导什么函数,不要上来import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库,简直无语

6.pygame代码调试的时候要用quit()不然程序结束时会崩溃。但是直接运行py文件就不需要这个函数。这个我们之前的文章也提到过了。但是这里当我使用-w做成无窗口的程序后,一结束发现报错,暂停后发现报的是找不到quit()函数。可见这个函数其实是一个很让人无语的函数。一方面pygame官方网上说结束程序的时候需要加入这个函数。另一方面其实在正在运行时都不需要甚至会报错。虽然也不影响运行,但是弹个窗口出来说 什么不fail to execute总是让别人觉得你是个lowb。所以,调试的时候加一下,到时候execute的时候去掉。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Python反射操作对象属性方法详解

    Python反射操作对象属性方法详解

    这篇文章主要介绍了Python反射操作对象属性方法详解,在Python面对对象中,通过字符串的形式去操作对象的属性方法就称之为反射(在Python中一切事物都是可以为对象),需要的朋友可以参考下
    2023-08-08
  • Python+Turtle动态绘制一棵树实例分享

    Python+Turtle动态绘制一棵树实例分享

    这篇文章主要介绍了Python+Turtle动态绘制一棵树实例分享,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 基于Python 装饰器装饰类中的方法实例

    基于Python 装饰器装饰类中的方法实例

    下面小编就为大家分享一篇基于Python 装饰器装饰类中的方法实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Conda创建新环境的详细图文教程

    Conda创建新环境的详细图文教程

    Anaconda功能庞大,其可以理解为一个工具,也是一个可执行命令,下面这篇文章主要给大家介绍了关于Conda创建新环境的详细图文教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Python functools模块学习总结

    Python functools模块学习总结

    这篇文章主要介绍了Python functools模块学习总结,本文讲解了functools.partial、functool.update_wrapper、functool.wraps、functools.reduce、functools.cmp_to_key、functools.total_ordering等方法的使用实例,需要的朋友可以参考下
    2015-05-05
  • Python中rapidjson参数校验实现

    Python中rapidjson参数校验实现

    通常需要对前端传递过来的参数进行校验,校验的方式有多种,本文主要介绍了Python中rapidjson参数校验实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • python 基于AioHttp 异步抓取火星图片

    python 基于AioHttp 异步抓取火星图片

    这篇文章主要介绍了python 基于AioHttp 异步抓取火星图片的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python+Tkinter创建一个简单的闹钟程序

    Python+Tkinter创建一个简单的闹钟程序

    这篇文章主要为大家详细介绍了如何使用 Python 的 Tkinter 库创建一个简单的闹钟程序,它可以在指定的时间播放一个声音来提醒你,感兴趣的可以学习一下
    2023-04-04
  • Python实现的计数排序算法示例

    Python实现的计数排序算法示例

    这篇文章主要介绍了Python实现的计数排序算法,简单描述了计数排序的算法原理并结合具体实例形式分析了Python计数排序的相关实现与使用技巧,需要的朋友可以参考下
    2017-11-11
  • Python加密模块的hashlib,hmac模块使用解析

    Python加密模块的hashlib,hmac模块使用解析

    这篇文章主要介绍了Python加密模块的hashlib,hmac模块使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论