将numpy包导入ABAQUS 6.10 Python环境

时间:2015-03-25 14:52:31

标签: python windows numpy abaqus

我从先前关于此类问题的讨论中未成功将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\(我已在文件夹C:\Python27\中安装了Python 2.7.6)
  2. PATH变量下的环境系统变量更改为C:\Python26\;(之前为C:\Python27\
  3. PYTHONPATH变量下的环境用户变量更改为C:\Python26\Lib\site-packages\(之前为C:\Python27\
  4. 在MS-DOS提示符下使用命令python成功加载Python 2.6.2。
  5. Python 2.6.2的Numpy安装

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

      1. C:\Python26\Lib\site-packages\复制 numpy 文件夹并粘贴到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. 的桌面
      5. 我终于在MS-DOS提示符下键入以下命令,以便在ABAQUS Python环境中运行脚本文件:abaqus cae noGUI=myScript.py,我收到以下错误:
      6. 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.
        

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

        我的基本问题是:&#34; 如何成功将numpy包导入ABAQUS环境?&#34;

2 个答案:

答案 0 :(得分:2)

老实说,32位版本的numpy不适用于64位版本的Python。因此,错误是非常期待的。即使Abaqus使用的是32位版本,我强烈建议不要复制和粘贴库的目录。

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

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

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

希望这有帮助

答案 1 :(得分:1)

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

我一般发现Abaqus中的python版本落后于主流python版本,远程做任何事情都不会起作用,因为它依赖于Simulia进行更新。我也使用太多自定义包。

在任何情况下,您最终都希望使用主python脚本来设置文件夹等高级内容并从表中读取数据。如果您正在运行脚本来构建模型,我不会怀疑您是否正在进行参数研究,因此您的循环可以在主脚本中。

有时将数据传递到abaqus .py文件的工作原理是设置结构或类并使用<?php include 'connection.php'; $sql="SELECT * FROM `tbl`"; $query=mysqli_query($connect,$sql); echo "<table border='2px'> <thead> <th>ID</th> <th>Title</th> <th>Name</th> <th>Doing</th> <th>Done</th> </thead> <tbody> <form method='POST'>"; while($res=mysqli_fetch_assoc($query)){ $id=$res['id']; echo"<tr> <td>{$res['id']}</td> <td>{$res['title']}</td> <td>{$res['name']}</td> <td><input type='checkbox' name='doing[]' value='".$res['id'].$res['title'].$res['name']."'></td> <td><input type='checkbox' name='done[]' value='".$res['id'].$res['title'].$res['name']."'></td> </tr>"; } echo "<input type='submit' value='OK' name='btn'> </form> </tbody> </table>"; ?> 保存它。据我所知,只要该类不包含任何自定义导入,它就是可导入的。