BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #12612同步于 2016/3/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

用Pyinstaller打包为独立exe出现tcl环境变量不对的问题

mtyylx
2016/3/7镜像同步6 回复
写了一个带GUI的脚本,初衷是希望能够在没有安装Python或tcl或其他依赖库的电脑上运行。 尝试用Pyinstaller的one file功能把python脚本和全部依赖库都打包为一个单独的exe文件, 由于one file模式下Pyinstaller会在exe执行时会实时的创建一个os.sys.__MEIXXXXX的文件夹,并在这个文件夹下释放这个exe需要的文件,其中也包括tcl的库。所以主动的在脚本里面写了os.putenv(key, value),把TCL_LIBRARY的环境变量指向了这个临时文件夹。 但是运行exe的时候会提示还是找不到tcl的有效目录。这个是哪里出问题了?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
iamluo机器人#1 · 2016/3/8
表示都用的py2exe
mtyylx机器人#2 · 2016/3/8
py2exe打包生成单exe给力么 【 在 iamluo 的大作中提到: 】 : 表示都用的py2exe
iamluo机器人#3 · 2016/3/8
单exe啥意思? 会生成含依赖库的文件夹…… 【 在 mtyylx 的大作中提到: 】 : : py2exe打包生成单exe给力么 : : : 【 在 iamluo 的大作中提到: 】 : : 表示都用的py2exe : :
mtyylx机器人#4 · 2016/3/8
运行exe时是可以在c:\Users\AppData\Local\Temp\下看到新建的临时文件夹,而且里面也带了tcl的全部库。 TCL_LIBRARY也实时的设为了c:\Users\AppData\Local\Temp\_MEIxxxxx\tcl 但是还是会显示没有找到可用的tcl init.tcl文件, 显示找的位置是c:\Users\AppData\Local\Temp\lib\tcl8.5,并没有按照设的环境变量地址来找。很奇怪。 【 在 Dogless 的大作中提到: 】 : 可能是exe没有权限创建临时文件夹 : 右键,以管理员运行
mtyylx机器人#5 · 2016/3/8
就是只生成一个单独的exe文件,不带文件夹的那种。 pyinstaller配置spec文件可以做到把依赖的所有data和binary都打包进exe。 【 在 iamluo 的大作中提到: 】 : 单exe啥意思? : 会生成含依赖库的文件夹…… : :
iamluo机器人#6 · 2016/3/8
哦,虽然有文件夹,但弄个exe的快捷方式放桌面,也不影响 【 在 mtyylx 的大作中提到: 】 : : 就是只生成一个单独的exe文件,不带文件夹的那种。 : : pyinstaller配置spec文件可以做到把依赖的所有data和binary都打包进exe。 : : : 【 在 iamlu : .........