pyinstaller打包,imageio庫讀取圖片導致新DOS窗口彈出,ffmpeg-win32-X.exe

用pyinstaller打包已經設置了"-w"參數,即沒有命令窗口模式,但是運行程序在打開圖片時仍然彈出DOS窗口。

原因是imageio庫的ffmpeg.py文件中引用了subprocess庫, 

self._proc = sp.Popen(cmd, stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE),

函數Popen輸入參數creationflags默認爲0,,但0不代表“無窗口模式”,通過查找API:

“https://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx”,

找到無窗口模式爲“CREATE_NO_WINDOW(0x08000000)”,通過修改源代碼實現不彈出窗口,修改代碼前最好備份一下,

self._proc = sp.Popen(cmd, stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE, creationflags = int('0x08000000', 16))

注意ffmpeg.py中的函數_initialize和_reinitialize均用到該語句,均需修改。

重新打包,問題解決。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章