我需要将 ABAQUS PDE 中开发的 python 脚本转换为可执行文件

imr*_*han 0 python pde abaqus

我想将 python 脚本转换为可执行文件。这个python脚本将调用另一个python脚本,这是需求。

脚本 :

from abaqus import *
from abaqusConstants import *
import __main__
import allAbaqusMacros

def Macro1():

import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
import os

execfile('C:\\\\Users\\\\Me\\\\Desktop\\\\Sample.py')""") - This also works
Run Code Online (Sandbox Code Playgroud)

但是,该代码仅适用于 ABAQUS PDE(类似于 Excel 中的 VBA 编辑器)

为了跟踪几个 python 脚本的使用情况,我这样做了。我知道我们可以从 File->RunScript 或在 CLI 中使用 Abaqus 命令运行它。但这不是要求。

我希望它作为一个文件,只需单击一下即可运行其他所需的脚本。另外,我已尝试将其作为批处理文件在命令提示符下运行。

批处理命令:

"C:\SIMULIA\Abaqus\6.14-3\code\bin\abq6143.exe" cae script =C:\Users\Me\Desktop\Sample.py %*
Run Code Online (Sandbox Code Playgroud)

这有效,但它会启动一个新会话。我使用了“noGUI”而不是脚本,但是

我收到此错误消息

getInputs cannot be used with the -noGUI option.
Run Code Online (Sandbox Code Playgroud)

另外,我也尝试使用以下命令运行它。

C:\Python27\python.exe C:\Users\Me\Desktop\Sample.py
Run Code Online (Sandbox Code Playgroud)

为此,错误消息是

Traceback <most recent call last>:
  File "C:\Users\Me\Desktop\Sample.py", line 1, in <module>
    from abaqus import *
  File "SMAPyModules\SMAPyaAbqPy.m\src\abaqus.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtilsPy.m\src\i18n.py", line 1 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uti.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\utiinternal.py", line 52 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 145 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 136 in _loadAbaqusDll
Value Error : dll not found : ABQSMABasShared.dll

Press any key to contuinue...
Run Code Online (Sandbox Code Playgroud)

有没有办法将在 Abaqus PDE 或任何插件开发环境中开发的 Python 脚本转换为可执行文件?请帮忙

Mat*_*t P 5

Abaqus/Python API 可用于多种用途,包括预处理/后处理任务、GUI 构建和创建宏。我可以看到您才刚刚开始,并且在一些误解下操作,所以我会轻轻地推动您仔细阅读官方文档,它非常完整地回答了您的所有问题以及更多问题1

但是,由于这些文档可能看起来需要吸收大量信息,因此我将尝试为您提供一些有用的提示。

  1. 您无法仅使用标准 Python 安装访问 Abaqus 模块,例如您尝试使用命令python file_name.py
  2. 您可以使用与 Abaqus 捆绑在一起的相同 Python 从系统 shell(例如 CMD 或 Bash)运行通用 Python 脚本abaqus python [file_name.py]
  3. 如果您仅键入 ,则可以从系统 shell 启动交互式 Python 会话abaqus python。请注意,这不是 Abaqus 内核进程的一部分 - 这意味着您无法通过这种方式导入任何 Abaqus 相关模块,但 Python 标准库应该可用。
  4. 如果您想要的对象/功能是通过模型数据库 (Mdb) 提供的,Abaqus 模块需要访问 CAE 内核(和许可证)。您可以使用从系统 shell 调用这些类型的脚本abaqus cae file_name.py。此命令启动一个新的 CAE 会话并运行您的脚本。
  5. 您可以运行访问 CAE 内核的脚本,而无需使用替代方案启动新的 CAE 会话:abaqus cae noGUI=file_name.py
  6. 如果没有图形 CAE 会话,某些功能将不可用,例如,getInputs因为它需要 GUI 弹出窗口。
  7. 相反,您可以从系统 shell 传递命令行参数,例如:abaqus cae noGUI=MyScript.py -- value1。您可以根据需要使用任意多个命令行参数。或者,将参数放入文件中并从脚本中打开/读取该文件。
  8. 您将需要导入正确的模块。例如,您不应该再需要import __main__. 如果发生错误,Python 回溯通常会告诉您出了什么问题。
  9. 如果您愿意,您可以将 Abaqus 执行命令放入批处理脚本中,这样您就可以双击它来运行。
  10. execfile您可以将其他 Python 脚本中的函数/对象与该语句一起使用,而不是使用import。例如from File_A import function1from File_B import function2等等。这些导入的Python脚本通常被称为模块。

这些提示应该可以帮助您入门,但请记住,可以这么说,这只是冰山一角。有关更多执行选项和详细信息,请参阅 Abaqus 分析用户手册 > 简介、空间建模和执行 > 作业执行 > 执行过程。

1具体而言,请参阅《Abaqus 分析用户手册》以获取有关如何从系统 shell 调用/执行 Python 脚本的说明,并参阅《Abaqus 脚本用户手册》以获取有关如何将 Python 与 Abaqus 结合使用的有用示例和说明。这应该与 Abaqus 脚本参考手册一起阅读,其中提供了完整的 API 详细信息。