2

numpy从之前关于这个类似问题的讨论中,我没有成功地将包导入ABAQUS Python 环境。

我正在使用 Microsoft Windows 7(64 位)。我已经安装了 ABAQUS 6.10。通过在 MS-DOS 提示符下键入命令abaqus python,我发现 ABAQUS 6.10 使用的是 Python 2.6.2 版本。出于一个重要原因,我的 python 脚本文件需要使用包array中提供的功能numpy。根据之前的讨论,我采取了以下步骤:

Python 2.6.2 安装

  1. 将 Python 2.6.2 版本(32 位)安装到C:\Python26\(我已经在文件夹中安装了 Python 2.7.6 C:\Python27\
  2. 将变量下的环境系统变量PATH更改为C:\Python26\;(以前是C:\Python27\
  3. 将变量下的环境用户变量PYTHONPATH更改为C:\Python26\Lib\site-packages\(以前是C:\Python27\
  4. python在 MS-DOS 提示符下使用命令成功加载 Python 2.6.2 。

Python 2.6.2 的 Numpy 安装

  1. numpy-1.3.0-win32-superpack-python2.6从C:\Python26\Lib\site-packages 文件夹中的Sourceforge.net-NumPy 1.3.0下载并安装了 numpy(32 位)MSI 安装程序文件。
  2. python在 MS-DOS 提示符下使用命令成功加载 Python 2.6.2 。
  3. 在python环境下使用命令导入numpy成功。import numpy

ABAQUS 6.10 的 Numpy 安装

  1. 将numpy文件夹从复制C:\Python26\Lib\site-packages\并粘贴到D:\SIMULIA\Abaqus\6.10-1\Python\Lib\site-packages,这是 ABAQUS 的 python 模块文件夹。请注意我已经在 D: 驱动器中安装了 ABAQUS 6.10。
  2. 创建了一个 python 脚本文件 myScript.py,其中仅包含以下代码行:from numpy import *并将其保存在桌面中。
  3. 打开 MS-DOS 提示符并将文件夹目标更改为包含myScript.py.
  4. 最后在MS-DOS提示符下输入以下命令,在ABAQUS Python环境下运行脚本文件:abaqus cae noGUI=myScript.py出现如下错误:
Abaqus License Manager checked out the following license(s):
"cae" release 6.10 from 127.0.0.1
<2010 out of 2011 licenses remain available>.
ImportError: DLL load failed: %1 is not a valid Win32 application.

File "myScript.py", line 4, in <module> from numpy import array

File "C:\Python26\Lib\site-packages\numpy\__init__.py", line 130, in <module>
        import add_newdocs
File "C:\Python26\Lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
        from lib import add_newdoc
File "C:\Python26\Lib\site-packages\numpy\lib\__init__.py", line 4, in <module>
        from type_check import *
File "C:\Python26\Lib\site-packages\numpy\lib\type_check.py", line 8, in <module>
        import numpy.core.numeric as _nx
File "C:\Python26\Lib\site-packages\numpy\core\__init__.py", line 5, in <module>
        import multiarray

Abaqus Error: cae exited with an error.

注意:我安装了 Python 2.6.2 32 位,因为可用于 64 位的 numpy 显示警告说它不稳定并且随后会崩溃。

我的基本问题是:“我怎样才能成功地将numpy包导入 ABAQUS 环境?

4

2 回答 2

2

老实说,32 位版本的 numpy 不适用于 64 位版本的 Python。因此,该错误在意料之中。即使 Abaqus 使用 32 位版本,我强烈建议不要复制和粘贴库的目录。

dim_voly 答案是解决此问题的简单方法,但如果您真的想在 Abaqus 中使用 numpy,这里有一些说明

  • 链接非常清楚地解释了如何安装 numpy。您需要在 PATH 环境变量中包含 Abaqus Python 目录。pip安装后,应该很容易安装 numpy 和您需要的任何其他库。

  • 我目前正在使用已经随 numpy 一起安装的 Abaqus 6.13。因此,升级您的软件也是一个可行的解决方案。

希望这可以帮助

于 2015-07-24T13:35:59.857 回答
1

我无法将任何内容导入 Abaqus python 环境。我使用的解决方法是使用主 .py 脚本生成 .py 脚本。因此,所有计算都已完成并作为文本粘贴到模板 .py 脚本中。然后稍后主脚本调用abaqus来运行python脚本。

我通常发现 Abaqus 中的 python 版本落后于主流 python 版本,并且远程做任何不寻常的事情都不起作用,因为它依赖于 Simulia 来更新东西。我也使用了太多的自定义包。

在任何情况下,您最终都需要一个主 python 脚本来设置高级别的东西,例如文件夹和从表中读取数据。如果您正在运行脚本来构建模型,我不怀疑您正在进行参数研究,因此您的循环可以在主脚本中。

有时也适用于将数据传递到 abaqus .py 文件的方法是设置结构或类并使用pickle. 据我记得泡菜的作品,只要该类不包含任何自定义进口就可以进口。

于 2015-06-17T05:28:20.190 回答