opencv pyinstaller:模块未找到错误:没有名为“cv2”的模块

h7wcgrx3  于 2022-12-13  发布在  其他
关注(0)|答案(4)|浏览(252)

我试图创建一个简单的软件(与pyinstaller),激活电脑摄像头,但我坚持与错误ModuleNotFoundError: No module named 'cv2'。但当我运行相同的代码使用命令提示符,它运行完美,因为我想要的。

import cv2
import tkinter as tk
    
def openCamera():
    video = cv2.VideoCapture(0)
    while True:
        _, frame = video.read()
        cv2.imshow("Camera display", frame)
        if cv2.waitKey(1) & 0xff == ord('q'):
            break
    video.release()
    cv2.destroyWindow("Camera display")
    
main_window = tk.Tk()#.title("My PC Camera")
activate_camera = tk.Button(text="Activate camera",command=openCamera).pack()
close = tk.Button(text="Close",command=main_window.quit).pack()
main_window.mainloop()

我使用以下命令创建了一个可执行文件,该文件成功运行。

$ pyinstaller --onefile test_camera.py

但是,当我尝试运行生成的可执行文件时,它会将以下消息打印到控制台:

Traceback (most recent call last):
  File "test_camera.py", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
[8876] Failed to execute script test_camera

Error Message
我想我已经根据下面的代码很好地安装了opencv-python

>>> import cv2
>>> cv2.__version__
'4.3.0'
>>>

屏幕截图

我还能错过什么?

b1payxdu

b1payxdu1#

我不想成为那样的人,但是你已经安装了CV2,对吗?
IIRC有几个不同的“opencvs”可以下载,我相信正确的是:

pip install opencv-python

我的第二个想法是,您可能在一个没有OpenCV2的虚拟环境中。考虑到tkinter是标准库的一部分,这里唯一的非标准库是OpenCV2。

9jyewag0

9jyewag02#

哇!我需要升级我的pyinstaller。我运行这个代码

pip install --upgrade pyinstaller

现在我得到了我想要的,虽然软件的大小不是它!

axr492tv

axr492tv3#

pyinstaller4.7和pyinstaller-hooks-contrib 2021.4支持开放式加密。
应使用pyinstaller4.5.1和pyinstaller-hooks-contrib2021.3

pip uninstall pyinstaller
pip install pyinstaller==4.5.1

pip uninstall pyinstaller-hooks-contrib
pip install -U pyinstaller-hooks-contrib==2021.3
q5iwbnjs

q5iwbnjs4#

我发现我混淆了我跑步的环境。

相关问题