【问题标题】:Scipy Optimization in Abaqus: ImportError: DLL load failed: %1 is not a valid Win32 applicationAbaqus 中的 Scipy 优化:ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序
【发布时间】:2017-03-16 16:03:09
【问题描述】:

我在 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 的位版本以及如何安装兼容版本,我将不胜感激。

【问题讨论】:

    标签: python-2.7 scipy abaqus


    【解决方案1】:

    “普通”CPython 2.7 使用 MSVC 15 (Visual Studio 2008) 编译,当您在命令窗口中打开解释器时可以看到。 Abaqus Python 使用 MSVC 16 (Visual Studio 2010) 编译。 所有需要编译的 Python 模块都不是二进制兼容的。

    所以你至少有三种可能性:

    1. 找到一个 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

    2. 使用 MSVC 16 从 Source 构建 SciPy(和一些依赖项)。 https://www.scipy.org/scipylib/building/windows.html

    3. 仅使用 Abaqus Python 来提取数据。将数据保存到 *.npy 或 *.npz 文件并在标准 Python 解释器中加载数据,您可以在其中轻松访问预编译模块。

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 2016-02-01
      • 2014-01-28
      • 2020-08-22
      • 2013-09-24
      • 2014-12-25
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多