在使用pyinstaller打包过程中,打包后的文件在本机可以正常执行,但是发给朋友后,会报No such file or directory的错误,耗费多时才解决,总结一下该问题的解决方案。
对我来说,感觉这是一个重点难点,通过多次调试,成功解决。
注意点:
1)pyinstaller会把main.py执行的时候能引用到的所有py文件(不包括其它任何文件)都会按照当前代码目录的组织方式打包到main.exe里面
2)pyinstaller不会打包除了.py文件之外的其他任何文件,如.yaml、.csv、readme、xlsx、jpg等等其它文件
3)如果要打包除了.py之外的其它文件,需要我们打包的时候加上--add-data把它们添加进去
4)使用了pyinstaller成功打包后,不再受限于本机环境。因为pyinstaller已经把依赖的python环境,依赖的第三方包,还有代码里面涉及到的资源都拷贝进到main.exe里面,也做了地址替换。