我在Abaqus 6.14-3中使用python编写脚本,并希望使用scipy包中的优化函数。这个版本的abaqus运行python 2.7.3(64位)并安装了numpy 1.6.2。所以我安装了scipy 0.9.0(32bit),我认为是兼容版本。
尝试导入优化我收到以下错误:
from scipy import optimize
File "C:\SIMULIA\Abaqus\6.14-3\tools\SMApy\python2.7\lib\site-packages\scipy\optimize\__init__.py", line 7, in <module>
from optimize import *
File "C:\SIMULIA\Abaqus\6.14-3\tools\SMApy\python2.7\lib\site-packages\scipy\optimize\optimize.py", line 28, in <module>
from linesearch import \
File "C:\SIMULIA\Abaqus\6.14-3\tools\SMApy\python2.7\lib\site-packages\scipy\optimize\linesearch.py", line 1, in <module>
from scipy.optimize import minpack2
ImportError: DLL load failed: %1 is not a valid Win32 application.
关于此错误代码的其他问题,我假设不同的位版本可能是问题。我不确定是否可以将pyhton更改为32位版本。另外,我不确定numpy是什么位版本。
如果您有任何建议可以找到numpy的位版本以及可能的安装兼容版本,我将不胜感激。
答案 0 :(得分:2)
“正常”CPython 2.7使用MSVC 15(Visual Studio 2008)编译,在命令窗口中打开Interpreter时可以看到它。 Abaqus Python是使用MSVC 16(Visual Studio 2010)编译的。 所有需要编译的Python模块都不是二进制兼容的。
所以你至少有三种可能性:
找一个SciPy模块,它是用Python 2.7编译的,带有MSVC 16. Python 用MSVC 16构建的2.7模块很难找到。也许你找不到一个适当的预编译SciPy版本。例如,可以在这里找到一些模块: http://p-nand-q.com/python/building-python-27-with-visual_studio.html
使用MSVC 16从Source构建SciPy(和一些依赖项)。 https://www.scipy.org/scipylib/building/windows.html
仅使用Abaqus Python提取数据。将数据保存到* .npy或* .npz文件并在标准Python解释器中加载数据,您可以在其中轻松访问预编译模块。