当使用到第三方的包时,打包需要使用
pyinstaller -F -p c:\users\61790\appdata\local\programs\python\python37\lib\site-packages extract_pdf.py
使用-p 指定解释器包的路径,但是自己还遇到一个问题:
上面指定的是Python3.7的路径,但是打包过程中,输出如下:
140734 INFO: Loading module hook 'hook-difflib.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140745 INFO: Loading module hook 'hook-distutils.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140747 INFO: Loading module hook 'hook-distutils.util.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140756 INFO: Loading module hook 'hook-encodings.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140888 INFO: Loading module hook 'hook-heapq.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140896 INFO: Loading module hook 'hook-importlib_metadata.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
140900 INFO: Loading module hook 'hook-importlib_resources.py' from 'd:\\python3.8.2\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
可以看到输出了很多python3.8的包的路径,最终导致打包失败,原因是自己电脑上安装了多版本的python,但是pyinstaller是在python3.8下安装的,现在是在python3.7下运行的pyinstaller打包程序,所以最终会去python3.8中找到它的可执行程序,要改正这个错误,只需要在python3.7下安装pyinstaller包即可。