一. 排查1
可能是缺少nolds这个包,所以先检查有没有安装这个包,可通过以下安装以及具体查看:
https://www.wheelodex.org/projects/nolds/wheels/nolds-0.5.2-py2.py3-none-any.whl/
二、排查2
- 报错:
No such file or directory: ‘C:\Users\BJ7K8F3\AppData\Local\Temp\_ME138562\nolds\datasets\brown72.npy ’
- 原因:
_MEI
*** 是pyinstaller的解压目录,报这个错是说明nolds\datasets\brown72.npy没有打包进去
这类错误可总结为一个模式:
No such file or directory:
‘C:\Users\BJ7K8F3\AppData\Local\Temp\_MEI91362\xxx\yyy’
- 解决
-
找到pyinstaller所在的目录,类似于(E:\Python_and_PyCharm\SoftWareSpace\Python\Lib\site-packages\PyInstaller),重要的是后面这半截(
\Python\Lib\site-packages\PyInstaller
)。直接在“此电脑”的搜索栏,搜索“PyInstaller”也是可以找到的,对比一下示例的路径,后半截一致就行。 -
进入
PyInstaller文件夹
后,找到
hooks文件夹
,点进去,然后在这里新建一个txt文本 -
在txt文本中写入以下语句,然后将文件重命名为
hook-xxx.py
,然后重新打包一次之前需要打包成exe文件的那个py文件就行了
from PyInstaller.utils.hooks import collect_submodules, collect_data_files
datas = collect_data_files('xxx') # xxx就是报错的那句话倒数第二个东西
- 举个例子
此时收到了这个报错:
No such file or directory: ‘C:\Users\BJ7K8F3\AppData\Local\Temp\_ME138562\nolds\datasets\brown72.npy ’
需要找到PyInstaller文件夹,然后在它的hooks文件夹下新建一个txt文本,并写入以下语句
from PyInstaller.utils.hooks import collect_submodules, collect_data_files
datas = collect_data_files('nolds')
-
然后按“Ctrl+s”保存文件,在当前文件夹下找到刚刚写的这个txt文件,将其重命名为
hook-nolds.py
,注意,一定要改成.py文件,命名格式就是“
hook-xxx.py
” -
最后一步,在cmd窗口中重新进到原来想要打包的SvgToPng.py文件所在的文件夹下,执行指令。(-F是必须要的,表示的是覆盖原来打包的版本)
Pyinstaller -F -i xxx.ico .\SvgToPng.py
- 等待指令执行完毕即可双击运行SvgToPng.exe程序了,如果还是不可以的话,就从上面的第一个步骤开始,再走一边,看看是不是除了nolds之外还有其他的库也没被打包进来,是的话,以相同的方法添加就好了。