Я пытаюсь реализовать код, который будет генерировать множество сценариев. Эти сценарии будут выполняться после трех разных симуляторов.
Я сохраняю свои сценарии в файл, используя полку. Мой код такой:
def save_variables(I, T, R, C, lambd, K, iteraction):
filename='/folder/shelve_{}.out'.format(iteraction)
my_shelf = shelve.open(filename,'n')
for key in dir():
try:
my_shelf[key] = locals()[key]
except TypeError:
pass
my_shelf.close()
и я загружаю данные в каждый симулятор следующим образом:
my_shelf = shelve.open(filename)
my_shelf = shelve.open(filename)
for key in my_shelf:
globals()[key]=my_shelf[key]
my_shelf.close()
Эта часть отлично работает. Моя проблема:
Если я запускаю весь код вместе, в одном и том же терминале исполнения, например, сначала генератор_сценариев, после симулятор_1, после симулятор_2 и хотя бы симулятор_3, в одной строке исполнения коды прекрасно работают.
Но если я запускаю только генератор сценария в одном терминале и запускаю каждую симуляцию в других 3 разных терминалах исполнения, я получаю следующую ошибку:
Number of arguments: 2 arguments.
Argument List: on
Iteraction 0
Traceback (most recent call last):
File "main.py", line 53, in <module>
onets.onets(i)
File "/Users/simulator_1.py", line 31, in simulator_1
n = [[0 for x in range(I+1)] for y in range(T+1)]
NameError: name 'T' is not defined
Я так понимаю, с этим уведомлением не удалось прочитать данные, сохраненные отложенным. Но файлы были в папке. Кто-то знает, как я могу решить эту проблему?
P.S.: Мне важно выполнять таким образом (отдельно), потому что я должен запускать 3 симулятора в одно и то же время, в разных терминалах исполнения. Это обеспечит большую экономию времени выполнения, чтобы получить мои результаты.
Спасибо всем.