2017-03-16 270 views
3

我在Python中使用python編寫Abaqus 6.14-3腳本,並希望使用scipy包中的優化函數。這個版本的abaqus運行python 2.7.3(64位),並安裝了numpy 1.6.2。所以我安裝了scipy 0.9.0(32位),我認爲它是兼容版本。Abaqus中的Scipy優化:ImportError:DLL加載失敗:%1不是有效的Win32應用程序

試圖導入優化我收到以下錯誤:

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,並可能如何安裝兼容版本。

回答

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 2.7模塊建立與MSVC 16都很難找到。也許你無法找到一個妥善的預編譯SciPy的Version.Some模塊可以找到例如這裏: http://p-nand-q.com/python/building-python-27-with-visual_studio.html

  2. 從源代碼編譯SciPy的(和一些依賴)與MSVC 16 https://www.scipy.org/scipylib/building/windows.html

  3. 使用ABAQUS Python只提取你的數據。將數據保存到* .npy或* .npz文件,並將數據加載到標準的Python解釋器中,以便您可以輕鬆訪問預編譯的模塊。

相關問題