Индекс вне диапазона?
# 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
,