pyinstaller打包后,打开exe遇到两个问题:version conflict for package ‘Tcl“和invalid command name “tcl_findLibrary“

本文描述了解决Tcl和Tk版本冲突问题的经历,从最初的错误信息出发,逐步尝试复制文件、修改init.tcl和tk.tcl文件,最终发现应在打包时使用的特定虚拟环境中调整版本号以确保兼容性。
摘要由CSDN通过智能技术生成

问题截图如下:

(1)version conflict for package 'Tcl":have 8.6.12,need exactly 8.6.13

(2)_tkinter.TclError:invalid command name "tcl_findLibrary

快速解决的偏方:

1.在电脑上搜索tcl8.6和tk8.6两个文件夹(应该选择位于同一个编程环境中的一对)

2.在E盘创建名为library的文件夹(第一个报错图片上写的其他文件位置应该也可以,此处偷懒)

3.打开tcl8.6文件夹,把其中所有内容复制到E:\library文件夹中

4.把tk8.6文件夹整体复制到E:\library文件夹中

——OK,再打开exe文件应该就正常了。

被这看似简单的打包问题困住了一整天,翻阅了各种网站的资料。

试过修改各个init.tcl与tk.tcl文件内的8.6.12\13的版本号,

也试过下载最新的8.6.13的tcl\tk文件(电脑上有许多虚拟环境,不知道怎么装),

还试过增减电脑的TCL_LIBRARY等等的系统变量

——可惜都不行。

直到在外网上看到相关问题,才慢慢尝试出来了。

本人是一头愚蠢的大学牲,没有能力进一步研究这两个问题内部的精巧机理,只能提供这一个看起来不靠谱的偏方。

请各路大神给予更详细的教学指导。

———————————————————————————————————————————

第二次补充:

后来在一个虚拟环境中,再次使用pyinstaller打包新的文件时,又出现了与第一个问题相似的问题,还是版本号8.6.12与8.6.13的问题。

猜想,运行打包好的exe需要8.6.13,执行pyinstaller打包程序则需要8.6.12。(晕,感觉有点矛盾)

观察报错信息发现,这tcl/tk的调用似乎跨越了不同的编程环境,包括本地python环境和其他的虚拟python环境。

经过实验试出了一个较好的方法——直接在使用pyinstaller打包的当前虚拟环境中,找到tcl8.6和tk8.6两个文件夹,分别修改其init.tcl和tk.tcl文件中的版本号,都改为8.6.13。(或是报错信息指定需要的版本号)。

如下图:

就是那种修改版本号的方法。

这样,打包和打开exe应该都正常了。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值