написать выходы из скрипта впадающих в особенность - PullRequest
0 голосов
/ 04 февраля 2019

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

У меня есть скрипт на Python, в конце которого вывод сохраняется с:

...
with open('saveOut.pkl','wb') as myFile:
    pickle.dump(myTable,myFile)

Iхочу запустить этот скрипт с особенностью на удаленной машине.Поскольку я изучаю особенность, я создал образ debian «песочницы» (еще не скомпилированный в один файл «img») в каталоге /tmp/debian;в этом образе я скопировал скрипт Python test.py в /usr/src и запустил его с командой:

sudo singularity exec /tmp/debian python3.5 /usr/src/test.py

Проблема:

Он работает хорошо, пока у меня есть толькоотображаемые результаты.В описанном выше примере рассола я не получаю ни одного файла saveOut.pkl: этот файл просто нигде не записан, но я не вижу ни одного сообщения.Я попытался написать явный путь в скрипте Python.Например, /usr/src/saveOut.pkl, но это то же самое.

Как я могу записать результат?

Каков был ваш ожидаемый результат, то есть в каком каталоге вы ожидали найти выходные данные?файл?

Я ожидаю файл saveOutput.pkl где угодно, в контейнере или нет, мне все равно, где он находится.В настоящее время я его совсем не понимаю: ни в текущем каталоге контейнера, ни в /usr/src/ контейнера, ни на хосте, ни где-либо еще.

Вы искали его на хосте?или в контейнере?

оба, я его нигде не вижу

1 Ответ

0 голосов
/ 22 февраля 2019

Здесь происходит то, что ваш скрипт на python записывает файл pickle в его текущее местоположение (/ usr / src / в контейнере).Затем, поскольку выходные данные из вашего сценария не являются постоянными (из-за того, что песочница не может быть записана при выполнении), она удаляется в конце выполнения.

Я полагаю, вы можете изменить свой сценарий:

with open('/opt/saveOut.pkl','wb') as myFile:
    pickle.dump(myTable,myFile)

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

sudo singularity exec -B ./:/opt /tmp/debian python3.5 /usr/src/test.py  

В любом случае, это сработало для меня.

...