当以exe运行程序时,无法使用Opencv Python在Windows 7上打开视频

当以exe运行程序时,无法使用Opencv Python在Windows 7上打开视频,python,opencv,Python,Opencv,我正在使用opencv python开发一个vision应用程序。我正在我的个人Windows 10计算机上开发它,但它需要在Windows 7设备上运行。我在Windows7设备上运行软件时遇到了一个问题,特别是cv2无法打开视频文件。为了调试的目的,我把代码简化了 代码是: import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument("-v", "--video", required=False,

我正在使用opencv python开发一个vision应用程序。我正在我的个人Windows 10计算机上开发它,但它需要在Windows 7设备上运行。我在Windows7设备上运行软件时遇到了一个问题,特别是cv2无法打开视频文件。为了调试的目的,我把代码简化了

代码是:

import argparse
import cv2

ap = argparse.ArgumentParser()
ap.add_argument("-v", "--video", required=False,
    help="path to the video file")
args = vars(ap.parse_args())

video_capture = cv2.VideoCapture(args['video'])
(val, frame) = video_capture.read() 
print(val)

input("Press Enter to exit...")
我使用命令'pyinstaller q1.py--onefile'为这个程序生成一个可执行文件。当我使用命令运行可执行文件时

q1 -v C:\Users\User\Desktop\output.avi
q1 -v C:\Users\User\Desktop\output.avi
真的

按回车键退出

但是,当我将此可执行文件复制到windows 7设备(通过USB)并运行命令时

q1 -v C:\Users\User\Desktop\output.avi
q1 -v C:\Users\User\Desktop\output.avi
我收到了错误

C:\Users\User\Desktop>q1-v C:\Users\User\Desktop\output.avi [错误:0]全局 C:\projects\opencv python\opencv\modules\videoio\src\cap.cpp(1 16) cv::VideoCapture::打开VIDEOIO(cv_图像):引发OpenCV异常:

OpenCV(4.2.0) C:\projects\opencv python\opencv\modules\videoio\src\cap\u images.cp p:253:错误:(-5:错误参数)CAP_图像:找不到起始编号 (以文件名):C:\Users\User\Desktop\output.avi in 函数“cv::icvExtractPattern”

假的

按回车键退出

两台计算机传递的文件相同。在翻阅opencv源代码时,我发现cv:icvExtractPattern似乎在寻找某种使用数字的标准化命名约定,我可以通过在视频文件名中包含数字(比如“output1.avi”)来消除错误。这将导致不会引发错误,但仍不会读入帧。这在我的windows 10设备上也不是问题

有人知道这里可能有什么问题吗

可能有用或不有用的其他信息:

  • Python版本3.7.5 64位
  • Pyinstaller 3.6版
  • Cv2版本4.2.0.34
  • <微软> Visual C++ + 2015-2019重新分配1425.25508(X64)(Windows 10机器)
  • 微软Visual C++ 2015重新分配(X64)-140.23026(Windows 7机器)
  • windows 7计算机未安装Python

那么您只是将exe文件复制到win-7,并且希望它能正常工作?没有部署?在win-10中没有相同的环境?我的印象是windows是向前/向后兼容的。因为我没有切换操作系统,所以我认为这不会是一个问题,这是一个opencv兼容性问题。我将检查pyinstaller部署。谢谢更新:pyinstaller文档指出,windows 10已迁移到通用CRT,并建议在windows 7计算机上安装更新的重新分发包(2015-2019(x64)-14.26.28720)。这并没有解决我的问题,我继续收到相同的错误。所以你只是复制exe文件到win-7,你希望它工作吗?没有部署?在win-10中没有相同的环境?我的印象是windows是向前/向后兼容的。因为我没有切换操作系统,所以我认为这不会是一个问题,这是一个opencv兼容性问题。我将检查pyinstaller部署。谢谢更新:pyinstaller文档指出,windows 10已迁移到通用CRT,并建议在windows 7计算机上安装更新的重新分发包(2015-2019(x64)-14.26.28720)。这并没有解决我的问题,我继续收到相同的错误。