我有一個python程序,它使用OpenCV從視頻文件中獲取幀進行處理。然後我使用py2exe創建一個獨立的可執行文件(也試過pyinstaller並得到相同的錯誤)。我的電腦和目標計算機都是Windows 7,但目標計算機沒有安裝python。我使用OpenCV從視頻文件中讀取幀頻和個別圖像。OpenCV與獨立的python可執行文件(py2exe/pyinstaller)
問題:當我在目標計算機上運行可執行文件時,幀速率返回爲0.0,我無法讀取幀。
如果在目標機器上安裝了python,那麼可執行文件按預期運行,否則會產生此錯誤。因此,似乎可執行文件中缺少某些內容,但創建可執行文件時我沒有發現錯誤,以指示可能丟失的內容。
其他誰報告類似的問題通常沒有包括numpy依賴(並得到一個錯誤表明這一點),但我已經包括numpy。我也嘗試過包括整個PyQt4模塊,因爲它被列爲OpenCV的python xy站點的依賴項(我已經爲代碼的其他部分提供了部分PyQt4),這也不能解決問題。
py2exe是不完美的,所以經常會錯過一些圖書館或dll,pyd等需要。最有可能你缺少opencv_highgui249.dll和opencv_ffmpeg249.dll等。我會使用py2exe沒有啓用單個可執行文件選項。並且,開始手動複製您的應用可能需要的文件。識別它們後,修改setup.py以使py2exe自動包含它們。 – otterb
你能顯示你的setup.py嗎?目標機器不應該安裝Python相關的任何東西,py2exe將包含需要的東西,有時它也需要一些幫助。 – Werner
@otterb。我將我的可執行文件中的dll文件與Python27/DLL文件夾中的opencv _ * .dll文件進行了比較。我的可執行文件只包含14個(我已經有opencv_highgui249.dll)。我試着添加了6個缺失的並修復了這個錯誤。如果我只添加open_cvffmpeg249.dll,它也修復了這個錯誤,但我不確定是否不包括其他錯誤會導致我還沒有確定的錯誤。 感謝您的回覆。也許有人明白「鉤子」是如何工作的,可以提交一個給pyinstaller解決這個問題? –