python程序打包后调用ANSYS报错 #forrtl

python程序打包后调用ansys出现forrtl错误,请问如何解决?打包前调试阶段是可以正常调用计算的。使用的是pyinstaller打包

img

forrtl是Fortran Runtime Library的缩写,这个错误通常是由于调用了未安装或者未正确配置的Fortran运行时库导致的。根据您提供的信息,问题可能与pyinstaller打包有关。

PyInstaller在打包程序时会将所有的依赖项打包到可执行文件中,但是有些依赖项可能需要手动处理。例如,如果您使用了ANSYS的Fortran库,那么这些库可能需要手动复制到打包后的可执行文件中。

解决方法如下:

  1. 确保您的打包脚本包含了调用ANSYS所需的全部文件和库。如果您不确定需要哪些文件和库,请参考ANSYS的文档。

  2. 检查您使用的ANSYS Fortran库与您打包程序使用的Fortran运行时库是否匹配。如果不匹配,会导致forrtl错误。

  3. 可以尝试使用PyInstaller的--add-binary选项手动将ANSYS Fortran库添加到可执行文件中。例如,如果您的ANSYS Fortran库位于C:\Program Files\Ansys Inc\v112\APDL\bin\winx64\ansys112.dll,则可以使用以下命令添加到可执行文件中:

pyinstaller --add-binary="C:\Program Files\Ansys Inc\v112\APDL\bin\winx64\ansys112.dll;." your_script.py

注意: "." 表示库的打包后路径,取决于您的打包文件目录结构。

  1. 如果以上方法都无法解决问题,您可以尝试将ANSYS Fortran库拷贝到系统环境变量Path所包含的路径中,这样就可以全局共享Fortran运行时库。

forrtl错误通常是由于Fortran运行库的问题引起的。在使用ANSYS时,需要加载Fortran运行库,而在打包后,可能会出现库文件丢失或加载失败的问题。

解决方法如下:

确认ANSYS所需的Fortran运行库是否打包进了可执行文件中。可以使用依赖性检查工具(如Dependency Walker)来检查可执行文件中是否存在所需的库文件。

如果库文件丢失或加载失败,可以尝试手动将所需的库文件复制到可执行文件所在的目录下,或者将库文件路径添加到系统环境变量中。