使用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歡迎溝通交流。