基于pyinstaller封装python程序为exe文件

基于pyinstaller封装python程序为exe文件过程可能会遇到很多问题,主要可能会是相关封装的库没有安装,需要要根据实际遇到的问题去百度解决,这里记录几个常见的问题。
封装时在终端使用命令
1.假设封装example.py

pyinstaller -F example.py

2.如果有中文路径或命名的程序,可能会报utf-8的问题,这时需要先在终端输入chcp 65001

chcp 65001

然后再输入

pyinstaller -F example.py

3.报错:RecursionError:maximum recursion depth exceeded
在报这句话的时候,程序应该已经编译生成了example.spec文件,打开这个文件,在开头添加这两行代码:

import sys
sys.setrecursionlimit(1000000)    #可以更改数字来改变maximum

然后再终端输入如下命令执行封装

pyinstaller -F example.spec

4.报错:ModuleNotFoundError: No module named ‘tensorflow.python._pywrap_tensorflow_internal’
去到anaconda安装路径下:

D:\anaconda\Lib\site-packages\tensorflow\python

找到这个文件:

_pywrap_tensorflow_internal.pyd

复制到example.py同级目录下,重命名为:

tensorflow.python.__python._pywrap_tensorflow_internal.pyd

运行命令

pyinstaller -F .\example.py --add-data "./tensorflow.python.__python._pywrap_tensorflow_internal.pyd;."

pyinstaller 对 --add-data 的命令的解释为:
–add-data < SRC;DEST or SRC:DEST >
Additional non-binary files or folders to be added to the executable. The path separator is platform specific, os.pathsep (which is ; on Windows and : on most unix systems) is used. This option can be used multiple times.
即第一个参数SRC是要导入的数据,第二个参数DEST是导入的参数在运行时相对主程序的路径。
在windows下用; 分割,在linux下用: 分割。

参考:
https://blog.csdn.net/buchunjiedexin/article/details/79764604

然后像上面一样修改example.spec,然后运行命令:

pyinstaller -F example.spec

也就是报错3的解决方法。
经过多次测试,报错4暂时还是没有解决。

5.报错4解决办法
应该是tensorflow_gpu版本的问题,原来是1.8,后面用1.13版本轻易的成功解决了,因为需要GPU加速,对应的CUDA版本是10.0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 PyInstaller 封装 Python 程序的步骤如下: 1. 安装 PyInstaller 可以使用 pip 命令来安装 PyInstaller: ``` pip install pyinstaller ``` 2. 进入 Python 程序所在的目录 在命令行中进入 Python 程序所在的目录。 例如,在 Windows 系统中,可以使用以下命令进入程序所在的目录: ``` cd C:\path\to\your\program ``` 3. 执行 PyInstaller 命令 在命令行中执行以下命令: ``` pyinstaller --onefile your_program.py ``` 其中,--onefile 表示将程序打包成一个单独的可执行文件,your_program.py 是你要打包的 Python 程序文件名。 执行完毕后,PyInstaller 会在当前目录下生成一个 dist 文件夹,其中包含了打包好的可执行文件和依赖库等文件。 如果程序中使用了一些动态加载的库或者文件,需要手动将这些文件复制到可执行文件所在的目录中。可以使用 PyInstaller 的命令行选项来指定需要打包的文件或目录,例如: ``` pyinstaller --onefile --add-data "data.txt;." your_program.py ``` 其中,--add-data 指定需要打包的文件或目录,格式为 "文件路径;目标路径"。上述命令表示将当前目录下的 data.txt 文件打包到可执行文件所在的目录,目标路径为当前目录。 另外,如果程序中使用了一些第三方库,需要确保这些库已经被正确安装,并且可以正常导入。可以使用 pip 命令来安装需要的库,例如: ``` pip install requests ``` 如果需要使用一些特定版本的库,可以在安装时指定版本号,例如: ``` pip install requests==2.25.1 ``` 总之,在打包成可执行文件之前,需要确保程序中所依赖的所有库都已经正确安装并且可以正常导入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值