Python image\u url=sys.argv[1]索引器错误:列表索引超出范围

Python image\u url=sys.argv[1]索引器错误:列表索引超出范围,python,firebase,google-cloud-firestore,Python,Firebase,Google Cloud Firestore,我对Python代码的以下部分有问题: import sys import requests import firebase_admin from firebase_admin import credentials from firebase_admin import storage image_url = sys.argv[1] cred = credentials.Certificate('certificate.json') firebase_admin.ini

我对Python代码的以下部分有问题:

import sys  
import requests  
import firebase_admin  
from firebase_admin import credentials  
from firebase_admin import storage  
image_url = sys.argv[1]  
cred = credentials.Certificate('certificate.json')  
firebase_admin.initialize_app(cred,{'storageBucket':'gs://rpi-demo-6d21d.appspot.com'})  
bucket = storage.bucket()  
image_data = requests.get(image_url).content  
blob = bucket.blob('happy.jpg')  
blob.upload_from_string(image_data,content_type='image/jpg')  
print(blob.public_url)
具体错误如下:

Traceback (most recent call last):
File "demo4.py", line 6, in <module>
image_url = sys.argv[1]
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“demo4.py”,第6行,在
image_url=sys.argv[1]
索引器:列表索引超出范围

sys.argv
列表是通过传递给脚本的命令行参数填充的,因此如果没有提供任何参数,则会出现如下错误

Traceback (most recent call last):
File "demo4.py", line 6, in <module>
image_url = sys.argv[1]
IndexError: list index out of range
demo.py
中,使用
python demo.py
运行它。您将获得输出

$ python demo.py
Traceback (most recent call last):
  File "demo.py", line 2, in <module>
    print(sys.argv[1])
IndexError: list index out of range

特别是对于您的示例,在调用
demo4.py
script时,您没有传递图像url命令行参数。您可以使用
python demo4.py

传递它。错误是在调用它时没有将参数传递给
demo4.py
。调用python demo4.py时,请确保传递所有必需的参数-
。换句话说,在尝试访问元素之前,首先检查
sys
是否足够大。如果它不够大,请定义某种默认值,或引发错误。如果您在尝试使用它之前打印(sys.argv)
,可能会有所帮助。尝试各种输入。好的,我已经为您的命令提供了一个示例,但更小的示例是:您可以将
import sys print(sys.argv[1])
放入
demo.py
中,并尝试使用
python demo.py
运行它。您将得到
$python demo.py回溯(上次调用):文件“demo.py”,第3行,打印(sys.argv[1])索引器:列表索引超出范围
,但如果您添加命令行参数,您将得到正确的输出:
$python demo.py foo
image\u url=sys.argv[1]#我们将url作为参数传递,如何传递url以及从何处获取图像url,因为我想从本地存储上载图像?@shashankpatel,您使用的脚本似乎正在将图像上载到云blob存储,因此您应该提供要上载的图像的url。
$ python demo.py
Traceback (most recent call last):
  File "demo.py", line 2, in <module>
    print(sys.argv[1])
IndexError: list index out of range
$ python demo.py foo
foo