天天看點

Basler python開發pyinstaller打包

使用python對basler 相機開發并做好UI後用pyinstaller 打包,生成XX.exe輕按兩下一閃而過,cmd XX.exe 後 報錯如下:

“ File “main.py”, line 25, in setup_cameras AttributeError: ‘int’ object has no attribute ‘Open’”,打開main.py line25, 此處調用pypylon 庫使用了camera.Open()方法。

解決方案參考Github, 修改.spec檔案,增加如下内容:

import pypylon
import pathlib
pypylon_dir = pathlib.Path(pypylon.__file__).parent
pylon_dlls = [(str(dll), '.') for dll in pypylon_dir.glob('*.dll')]
           

把binaries=[]改為binaries=pylon_dlls然後cmd -> pyinstaller XX.spec即可。

原因:PyInstaller不知道Pypylon的run-time庫在哪裡,需要我們手動include,pylon_dlls指定了.dll位址和檔案名。

Q562604218歡迎溝通交流。