Запустить задание Abaqus из python

Я пытаюсь запустить задание Abaqus из скрипта Python:

subprocess.call(['/opt/Abaqus/Commands/abq6132', 'job=test.inp'])

Следующее предупреждающее сообщение появляется, как и ожидалось:

Предупреждение Abaqus: расширение .inp или .sim удалено из идентификатора задания.

также создается файл .com и пустой файл .log. Но дальше ничего не происходит, и абакус пре и стандарт не запускаются.

Попытка запустить другое программное обеспечение с помощью subprocess.call() работает достаточно хорошо, например. запустить Матлаб; только Abaqus не запускается, как ожидалось. Кто-нибудь знает, почему он не работает с Abaqus?

Кстати, и другие возможности, например. subprocess.call(['/opt/Abaqus/Commands/abq6132 job=test.inp'], shell=True) дают одинаковые результаты.


person UlrichH    schedule 16.01.2017    source источник
comment
ты хочешь только job=test   -  person agentp    schedule 17.01.2017
comment
это ничего не меняет... Во всяком случае, тем временем я обнаружил, что он работает при запуске из командного окна, но не при запуске изнутри eclipse   -  person UlrichH    schedule 17.01.2017
comment
вероятно, проблема похожа на: stackoverflow.com/questions/3460130/ ... (переменные пути в IDE), однако я до сих пор не знаю, как решить проблему   -  person UlrichH    schedule 17.01.2017
comment
избавление от inp должно убить предупреждение о необходимости его удаления! Я думаю, что это не было действительно основной проблемой, хотя.   -  person agentp    schedule 17.01.2017


Ответы (1)


Наконец я нашел решение этой проблемы в:

Неправильное поведение Abaqus-Python

Чтобы решить проблему, необходимо удалить определенную переменную среды:

    import os
    try:
        os.environ.pop('PYTHONIOENCODING')
    except KeyError:
        pass
    subprocess.call(['/opt/Abaqus/Commands/abq6132 job=test.inp'], shell=True)
person UlrichH    schedule 17.01.2017
comment
Удивительно. У меня была проблема, из-за которой я не мог отдавать команды приостановки и возобновления работы Abaqus через python. Ваше решение полностью решило это! - person UN4; 06.02.2017