这两天做了个GUI,本来一切正常,把加密也做好了,打包也正常,后来加了个小功能,然后再打包就不对了,于是使用pyinstaller -F xx.py,这样就可以在执行EXE时弹出命令行控制台,奇葩的事发生了,程序一点问题没有,依然能像在pycharm里面一样完美执行,于是我在百度搜了各种解决办法,都试了个遍,没有一样管用,什么加参数呀,什么改配置呀,什么引包不对呀,统统没用,毕竟我打包时没有报任何错误 ,并且如果在缺少引包,那在pycharm中执行时程序就会报错缺少模块。
我就开始找代码,于是发现程序一但执行获取本机的代码时就有问题,我是用的os.popen,于是注释掉这个代码,再次打包执行,完美。。。一点问题没有了
虽然不知道为什么,但确实把这里代码注释以后,也就是不用这个代码获取本机数据,程序一丝影响都没有,我搞了两三天,居然没想到是这个代码问题,奇了怪了,为什么打包弹出控制台就能正常,打包加上-w不弹控制台就失效或者说程序无法控制呢?目前还没有找到其它方式能代替获取本机数据。
os.popen('ipconfig /all')
就是这段代码 ,相当于是执行我们平时在CMD下执行的指令,难道因为它本身就是执行 CMD,所以需要加上-w把命令行显示出来?如果有神请指教一下,我用这个代码的本意是想获取物理地址和多张网卡的MAC地址
不管怎样,也算是勉强解决,保证了程序的正常运行,暂时是放弃了获取多网卡,本来是用来作为备用,目前程序还用不到这些数据
希望能给大家带来帮助 ,我也是被这问题折腾了两三天