Python 索引器:列表索引超出范围:sys.argv[1]超出范围

Python 索引器:列表索引超出范围:sys.argv[1]超出范围,python,command-line-arguments,Python,Command Line Arguments,我正在尝试运行以下代码,但始终遇到一个错误,IndexError:list index超出范围 我知道这是sys.argv[1]的todo;我有一个基本的想法,这个函数是从命令行调用我的项目的第一行-当我尝试从CMD运行项目时,我遇到了相同的错误 守则: import cv2 import sys cascadePath = sys.argv[1] faceCascade = cv2.CascadeClassifier(cascadePath) video_capture = cv2.Vid

我正在尝试运行以下代码,但始终遇到一个错误,IndexError:list index超出范围

我知道这是sys.argv[1]的todo;我有一个基本的想法,这个函数是从命令行调用我的项目的第一行-当我尝试从CMD运行项目时,我遇到了相同的错误

守则:

import cv2
import sys

cascadePath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascadePath)

video_capture = cv2.VideoCapture(0)


while True:
    ret, frame = video_capture.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )

    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

video_capture.release()
cv2.destroyAllWindows()
错误:

Traceback (most recent call last):
  File "C:/Users/Niku/PycharmProjects/FaceDetection/FaceDetection.py", line 4, in <module>
    cascadePath = sys.argv[1]
IndexError: list index out of range
如有任何见解或建议,将不胜感激

sys.argv[1]此代码需要第一个命令行参数。如果没有,那么您将遇到此错误。 例如:

一些_script.py

import sys
sys.argv[1]
如果您不提供下面显示的myfirst\u agras,那么它将抛出您看到的索引错误

some_script.py myfirst_agr

更多示例是

您是如何运行脚本的?您究竟是如何调用您的程序的?另外,您可以通过临时将cascadePath=sys.argv[1]替换为printsys来检查sys.argv列表中的内容。argv@Sushanth-我使用PyCharm作为IDE;我试过从我的IDE运行它,也试过从IDE中的终端运行,试过从CMD引导。@Ronald我正在使用PyCharm作为IDE;我试过从我的IDE运行它,也试过从IDE中的终端运行,试过从CMD引导。感谢对文档的简单分解和引用,非常有用!在使用myfirst_参数从CMD运行代码时,我遇到了另一个错误:faces=faceCascade.detectMultiScale cv2.error:OpenCV4.2.0 C:\projects\opencv python\opencv\modules\objdetect\src\cascadedtect.cpp:1689:error:-215:Assertion失败!函数“cv::CascadeClassifier::detectMultiScale”中为空,任何洞察都将不胜感激。@Karanvir.S.G,这是完全不同的问题。你可以提出另一个问题。@Karanvir.S.G,如果这是一个有用的答案,你能接受这个答案吗?