程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”?

开发过程中遇到从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”的问题如何解决?下面主要结合日常开发的经验,给出你关于从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”的解决方法建议,希望对你解决从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”有所启发或帮助;

这是我的第一个堆栈溢出问题。基本上,我正在创建一个 QR 码阅读器,它将读取 QR 码上的 URL 并自动打开指向该链接的 Chrome 浏览器。

我发现要做到这一点并让它继续运行的最简单方法是让应用保持循环并自行重新启动。

这是我的代码

#!/usr/bin/env python

import cv2
import urllib.request
import webbrowser
import time
import os

# open a connection to a URL using urllib
webUrl = urllib.request.urlopen

# set up camera object
cap = cv2.VIDeoCapture(0)

# QR code detection object
detector = cv2.QRCodeDetector()
data=""
triggerTime=0
while True:
    # get the image
    _,img = cap.read()  
    # get bounding Box coords and data
    data,bBox,_ = detector.detectAndDecode(img)
   
    # if there is a bounding Box,draw one,along with the data
    if(bBox is not NonE):
        for i in range(len(bBoX)):
            cv2.line(img,tuple(bBox[i][0]),tuple(bBox[(i+1) % len(bBoX)][0]),color=(255,255),thickness=2)
        cv2.putText(img,data,(int(bBox[0][0][0]),int(bBox[0][0][1]) - 10),cv2.Font_HERShey_SIMPLEX,0.5,(0,255,0),2)
        if Data:
            url = data
            Chrome_path = '/usr/bin/chromium-browser'
            webbrowser.get(Chrome_path).open(url)
            print("data found: ",data)
           
            while 1:
                os.system("/home/pi/Desktop/cameratest.py")
                print("RestarTing Script")
                exit()
           
           
       
                           
    # display the image prevIEw
    cv2.imshow("QR Parser",img)
    if(cv2.waitKey@R_673_11269@ == ord("q")):
        break
# free camera object and exit
cap.release()
cv2.destroyAllwindows()

所以我的代码运行良好,它读取二维码,识别它,然后使用 Chromium 转到 URL。一旦代码循环并尝试重新启动,它就会打开脚本,然后给出“importError: No module named cv2”

任何帮助将不胜感激。我不知道为什么这不起作用。

我已经安装了 opencv2-python 并且我正在运行 raspbian。

解决方法

raspbian 有两个版本的可能性。

代码启动时,可以获得一个标准版本,这样你的代码就可以无误运行,但是你已经安装了另一个版本的cv2。

收到cv2安装的python版本没有被使用,但是应该使用的是没有安装cv2的默认版本

,
 if Data:
    url = data
    chrome_path = '/usr/bin/chromium-browser'
    webbrowser.get(chrome_path).open(url)
    print("data found: ",data)
   
    while 1:
        os.system("/home/pi/Desktop/cameratest.py")
        print("RestarTing Script")
        exit()

你可以把这部分改成这样:

 if Data:
    url = data
    chrome_path = '/usr/bin/chromium-browser'
    webbrowser.get(chrome_path).open(url)
    print("data found: ",data)
    if __name__ == '__main__':
        os.execv(__file__,sys.argv)

可能需import sys

大佬总结

以上是大佬教程为你收集整理的从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”全部内容,希望文章能够帮你解决从内部重新启动 python 脚本时,出现导入错误。 “导入错误:没有名为 cv2 的模块”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。