exe可以提源码吗_Python打包exe(Pytorch/Matplotlib)-Nuitka技巧谈

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:18   2026   0

55084626113ef23da265f209e1300548.png

Pytorch在python界用得比较多,打包容易失败,应一知友的邀请(使用pyinstaller打包失败,无法启动),我们开始试水Nuitka打包大型文件,后续会出一系列复杂py打包exe的技巧,本文是系列之一

打包环境安装与调试视频如下,新手一定要看完视频

Python与模具:Python打包exe(32/64位)-Nuitka再下一城zhuanlan.zhihu.com
c232630baf377454d906514b7028eff0.png

首先开始安装,torch下载地址https://pytorch.org/get-started/locally/

pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

在cmd窗口内运行该命令,然后窗口会有一个torch的whl下载链接,点击暂停,用迅雷下载下来(pip下载太慢了)

9d9e77e67bb88fe40fe9a28a579c40ce.png

f4a5506be51485737d8d082c587fbc99.png

下载完成后,在下载目录下cmd运行

pip install torch-1.5.0-cp37-cp37m-win_amd64.whl
pip install torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

有个别模块Nuitka打包失败,我建了一个Nuitka打包和python学习群会慢慢收录一些不合理的模块,如果你遇到打包失败了请避开(也可能打包成功),不要浪费太多的时间比如:

  1. pydensecrf(有些bug过不了)
  2. tkinter(环境多个版本,有些时候又没有问题,改选PyQt5会更好一些)(文末有更新)
  3. PyQtgraph(涉及到PyQt5,PyQt4,Pyside2的选择,修改源码会让人崩溃)

2ef33556acc0ced04e51b8eb8c46e92d.png

如果出现图片以下的情况,需要留意

  1. 请检查时候用得conda安装的,环境不够干净
  2. 把对应的py文件也放到need文件夹外部来排查

439002313dbc1488beb4559baecf76b8.png

运行没问题,直接复制torch的文件,文件很大

5a5def88e755a98d086bd67a7f2eaa52.png

界面终于能打开了,运行Matplotlib出现以下情况"Can't find a usable init.tcl in the following directories":

85ea415047e8a1fde10c2b0251a80c12.png

这是Matplotlib使用tkinter展现图片的时候出现问题了,因此我们要让Matplotlib使用PyQt5来展现图片

2f57a24f1330bfd79effdd2b54b189ac.png

程序终于能运行了,整个Pytorch文件打包下来需要1.85G,本文是想告诉大家Pytorch打包exe是没有问题,需要压缩大小或者编译成pyd还可以继续的,这里不做进一步的优化,如果你有其他需求请到群里面来提。

这个教程总结的经验是:如果能用经常更新的模块就用经常更新的,不要用那种很冷门的模块,更新慢Bug就多,兼容性差;出现问题及时寻找可以替换的模块,或者留言询问。

-----------------------------更新内容


第二点Tk的问题可以解决的,评论中有大神 @孙文弢 已经贴出方案 2020-06-04https://github.com/Nuitka/Nuitka/issues/137#issuecomment-426570441https://github.com/Z-H-Sun/NICSA/blob/v1.07/nicsa#L97-L100

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP