【问题标题】:Executing command line program (Abaqus-python script) from python script从 python 脚本执行命令行程序(Abaqus-python 脚本)
【发布时间】:2020-07-11 20:23:52
【问题描述】:

我正在尝试从在 Spyder(python 3.7,Windows 10)中执行的另一个 python 脚本运行 Abaqus-python 脚本文件。

如果我在 CMD 中运行以下命令 abaqus cae -noGUI model.py 代码按预期执行。但是,如果我尝试运行 cp = subprocess.run('abaqus cae -noGUI model.py',shell=True) 我没有得到任何输出。下面是cp中返回的内容。

注意事项:

  1. 我尝试运行的 Abaqus-python 文件与我拥有的 python 脚本位于同一文件夹中。
  2. 我尝试过不同字符串和列表格式的各种 sp.call、sp.run、os.systems。
  3. “C:\Abaqus\Commands”和“C:\SIMULIA\Commands”都在我的 PATH 环境变量中。
  4. 我认为 -noGUI 调用对问题很重要。在这个问题上,我似乎找不到其他人。

【问题讨论】:

    标签: python subprocess abaqus


    【解决方案1】:

    经过大量挖掘后,我认为问题在于我的 python 安装路径是在 Anaconda 中完成的,所以我有一条与 CMD 不同的路径。我通过将完整的 Abaqus 位置添加到命令来解决此问题。见下文。

    subprocess.call(r'C:\SIMULIA\Commands\abaqus job=Job-1 ask_delete=OFF interactive', shell=True)

    【讨论】:

      【解决方案2】:

      我不确定您的问题是什么引起的,但请注意 Abaqus 脚本是基于 python 2.7,因此您可能需要降级它

      【讨论】:

      • 谢谢,但这是将 Abaqus 作为程序调用,所以当我调用 Abaqus 时,它会在自己的环境中运行 python 命令并将数据返回到数据文件。因此,python 环境之间没有交叉污染。
      最近更新 更多