前段时间有个项目需要打包成exe,按照网上的教程使用pyinstaller打包,打包过程很成功,但是打包之后会出现ModuleNotFoundError,比如
ModuleNotFoundError: No module named 'PyPDF2'
[PYI-19452:ERROR] Failed to execute script 'report_generation' due to unhandled exception!
我尝试了能搜索到的一切方法,都没有奏效,包括直接修改.spec文件,修改递归深度,显式声明隐藏依赖等等。
我是在pycharm的终端中使用的,pycharm默认的创建虚拟环境的工具是venv,在这个环境中打包总是不成功,因此我尝试更换为conda创建虚拟环境,我下载conda后,在conda prompt中创建了一个虚拟环境,并且逐一安装所需要点包,再打包,打包出的文件就没有问题了!
但是在我的代码中,我使用相对路径调用了一个与程序同文件夹的文件,使用命令行执行exe时却显示文件不存在,这是因为我们的工作文件夹并不是exe文件所在的文件夹,我们只需要cd 到exe当前的文件夹,再执行就不会报错了。
写的很简单,但是这些问题真的让人很抓狂,如果有新手遇到了和我一样的问题,抓破头皮也搞不定,欢迎评论留言,我看到后会尽己所能努力回答的。