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
Простое воспроизведение - поставить
import sys
print(sys.argv[1])
in 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
но если вы передадите ему аргумент с помощью python demo.py foo
, вы получите желаемый результат:
$ python demo.py foo
foo
Специально для вашего примера, похоже, что при вызове сценария demo4.py
вы не передаете аргумент командной строки image url. Вы можете передать его, используя python demo4.py <image_url_goes_here>
.