python用pyinstaller打包好的.exe直接双击可以运行,或者cmd进入.exe所在文件夹用可以用cmd运行,但是直接用cmd运行(不进入.exe所在文件夹)或用其它程序调用,报错

python文件中写的类似与   ./Test_Switch/result/result.txt 这种的相对路径,该路径用pyinstaller打包后,

1. 双击.exe程序调用的是.exe所在文件夹中的Test_Switch文件夹下的result文件夹下的result.txt 文件,可以运行。

2. 直接打开的cmd(如下图所示),如果在此处,直接将.exe程序拖进cmd运行框,发现运行报错。

 

原因:程序的运行的入口的问题

如上图的cmd,在该处运行,程序的运行入口在C:\Users\85485\ 这个文件夹下,如果直接拖拽运行封装好的.exe,上面程序里的./Test_Switch/result/result.txt,就表示,在85485文件夹下的Test_Switch文件夹下的result文件夹下的result.txt 文件,请问你原来的程序的绝对路径C:\Users\85485\Test_Switch/result/result.txt是这样的吗???

所以上文python文件中写的路径,是与程序入口有关的,如果程序的入口在C:\Users\85485\ ,那么C:\Users\85485\路径下就要有Test_Switch/result/result.txt,要不直接使用cmd或是用其它程序调用.exe程序就会执行出错。

也就是上文的路径就是程序执行入口下的Test_Switch/result/result.txt文件,如果修改了该文件的位置与程序入口相关,那么直接双击运行.exe文件就会出现问题,同样会找不到路径。

总结:源程序中的路径,即和自己源文件的位置有关(双击调用.exe),还与运行时程序入口有关(写其它程序调用封装好的.exe或者在某个路径调用封装好的.exe)。-------其实有点绕,需要自己改改路径,自己试试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值