взаимодействие python и abaqus

Мне нужен алгоритм для обновления входного файла, я обнаружил, что могу изменить файл .py и запустить его в abaqus.

Но поскольку процесс необходимо автоматизировать, я пытаюсь открыть скрипт и запустить его в abaqus

Я пробовал это: os.system ('abaqus cae script = C: \ Users \ Samuel \ abaqus-1 \ script1.py')

import os
import subprocess


HERE = os.path.dirname(os.path.abspath(__file__))


def create_script(name):
    path = os.path.join(HERE, 'abaqus-1', name)
    return path


name = 'script1.py'
script_path = create_script(name)
print (script_path)


args = ['abaqus', 'cae', 'script={0}'.format(script_path)]
print (args)
p = subprocess.Popen(args) # Success!
print(p.communicate()) 

это работает в окнах cmd dos, но не работает на python, если кто-нибудь может мне помочь, я был бы признателен

ошибка

['abaqus', 'cae', 'script=C:\\Users\\Samuel\\abaqus-1\\script1.py']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Samuel\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
    execfile(filename, namespace)
  File "C:\Users\Samuel\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "C:/Users/Samuel/prueba control.py", line 28, in <module>
    p = subprocess.Popen(args) # Success!
  File "C:\Users\Samuel\Anaconda3\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Samuel\Anaconda3\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

person Samuel Ferrer    schedule 08.09.2016    source источник
comment
Для начала нужно опубликовать, почему он не работает на python. не работает - довольно плохое описание ошибки.   -  person grochmal    schedule 08.09.2016
comment
Возможно, взгляните на подпроцесс: docs.python.org/3.5/library /subprocess.html#module-subprocess   -  person Phidelux    schedule 09.09.2016
comment
вы можете попробовать noGUI=script.py, но на самом деле не работает слишком расплывчато   -  person agentp    schedule 09.09.2016
comment
Вам нужно передать полный путь к запущенному бинарному файлу. Поскольку вы не запускаете его через оболочку, вы не можете полагаться на способность оболочки искать двоичные файлы в переменной среды PATH.   -  person Łukasz Rogalski    schedule 10.09.2016
comment
noGUI генерирует ту же ошибку   -  person Samuel Ferrer    schedule 10.09.2016
comment
@ UkaszRogalski, извините, я не понимаю, я работал только с python или исправлял этот тип кодов в течение нескольких недель, я инженер-строитель, мои технические знания немного ограничены   -  person Samuel Ferrer    schedule 10.09.2016
comment
@ UkaszRogalski огромное спасибо args = ['C: \\ SIMULIA \\ Abaqus \\ Commands \\ abaqus.bat', 'cae', 'script = {0}'. Format (script_path)] наконец-то это работает   -  person Samuel Ferrer    schedule 11.09.2016


Ответы (1)


Может это предложение неверно -

os.system('abaqus cae script=C:\Users\Samuel\abaqus-1\script1.py')

Вам нужно запустить скрипт python в Abaqus, используя команду

abaqus cae noGUI=nameOfScript.py

Итак, в вашем случае

os.system('abaqus cae noGUI=C:\\Users\\Samuel\\abaqus-1\\script1.py')

Я не уверен насчет символа «\», поскольку обычно открываю abaqus в той же папке, где хранятся мои скрипты Python.

person Kedar Anant Malusare    schedule 12.10.2016