Индекс вне диапазона?

# load parameters file

yml = yaml.load(open(sys.argv[1]))
# imports 

for pkg, functions in yml['imports'].iteritems():   
    stri = 'from ' + pkg + ' import ' + ','.join(functions)
    exec(stri)

для приведенного выше кода я получаю ошибку

IndexError: list index out of range

в строке 2.. кто-нибудь может мне помочь?

1 ответ

Решение

Линия:

yml = yaml.load(open(sys.argv[1]))

... предполагает, что вы передаете значение, которое будет использоваться в строке, в качестве аргумента при вызове скрипта:

<script> <argument>

но, вероятно, вы просто запустили скрипт без каких-либо аргументов.

Перечислены аргументы, где команда для вызова сценария является первым элементом в списке (первый элемент - индекс 0).

[<script>, <sys.argv[1]>, <sys.argv[2]>]

Так как вы запускаете скрипт только с его командой (sys.argv[0]), sys.argv[1] ссылается на (список-) элемент, который не существует, поднимая IndexError,

Другие вопросы по тегам