pyinstaller 打包 perfotto 报错
No such file or directory error
- 找到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就是报错的那句话倒数第二个东西
对应perfotto 如下:
from PyInstaller.utils.hooks import collect_submodules,collect_data_files
hiddenimports=(collect_submodules("perfetto.trace_processor")+
collect_submodules("perfetto.trace_processor.TraceProcessor")+
collect_submodules("perfetto.trace_processor.trace_processor.descriptor")+
collect_submodules("perfetto.trace_processor.TraceProcessorConfig")
)
datas= collect_data_files("perfetto")
pyinstaller -F ./main.py
perfetto.common.exceptions. PerfettoException: Trace processor failed to start
TraceProcessor(trace="C:\Temp\traces\traces\1.trace", config=TraceProcessorConfig(verbose=True ,bin_path=./trace_processor_shell.exe))
参考文献:
https://cloud.tencent.com/developer/article/1850736
https://github.com/google/perfetto/issues/338