python nuitka將程序打包後,將cv2的庫文件移動至程序目錄後,在python環境中可以運行,離開python環境後提示:ImportError: DLL load failed while importing cv2: 找不到指定的模塊。
1 . 因為我的程序可以在python環境中運行,這說明我環境中的cv2是可以正常使用。
2. 打包後的程序在python虛擬環境中是可以運行,說明打包的程序沒有問題。
3. 打包的程序離開python虛擬環境後,提示找不到cv2的模塊,說明是cv2導入程序包導致。
因此,我只需要解決cv2引入程序包後的異常問題即可。
pip uninstall opencv-python
pip uninstall opencv-contrib-python
pip install opencv-python
pip install opencv-contrib-python
在IDEA中配置將cv2所在目錄添加到環境變量中
使用 Dependency Walker,檢查cv2中文件cv2.pyd
缺少的 dll 依賴文件,進行重新導入。
修改cv2文件夾下的pyd
文件名為cv2.pyd
因為我需要打包後,作為一個獨立程序提供給其他人使用,所以並不適用我的應用場景。
既然網友提供的方法不適用,只能根據自己的場景,找方法。
程序所在的python環境中cv2的使用是沒有問題的,如果我直接使用環境中cv2,應該就能解決我的問題。
通過pycharm,我打開cv2.__init__.py
,再次跳轉至.cv2
。
注意,在程序運行的python虛擬環境中,跳轉成功,打開了cv2.cv2.__init__.py
,而時間的cv2庫中是沒有這個文件的。
打開cv2.cv2.__init__.py
所在目錄,該目錄在cv2的文件夾下是沒有的。對比一下程序運行中使用的cv2文件夾和cv2庫文件目錄中文件的差異。