2015-05-09 1 views
5

Я установил последнюю версию Numpy успешно, и я использую Python 3.4, я не понимая эту ошибку:Python: DLL нагрузки не удалось:% 1 не является допустимым приложением Win32

Traceback (most recent call last): 
    File "C:\Python34\LUdecomp.py", line 1, in <module> 
    import numpy as np 
    File "C:\Python34\lib\site-packages\numpy\__init__.py", line 170, in <module> 
    from . import add_newdocs 
    File "C:\Python34\lib\site-packages\numpy\add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "C:\Python34\lib\site-packages\numpy\lib\__init__.py", line 8, in <module> 
    from .type_check import * 
    File "C:\Python34\lib\site-packages\numpy\lib\type_check.py", line 11, in <module> 
    import numpy.core.numeric as _nx 
    File "C:\Python34\lib\site-packages\numpy\core\__init__.py", line 6, in <module> 
    from . import multiarray 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

код:

import numpy as np 
from sys import argv 

script, filename = argv 

txt = open(filename) 

header = txt.readline().split() 
inputArray = map(float, txt.readline().split()) 
txt.close() 

inputMat = np.mat(inputArray) 
inputMat.reshape(int(header[0]), int(header[1])) 
inputMat.shape() 

#takes q2data as input 
def lu(A): 
    #Decomposes a nxn matrix A by PA=LU and returns L, U and P. 
    n = len(A) 
    L = [[0.0] * n for i in xrange(n)] 
    U = [[0.0] * n for i in xrange(n)] 

    #Creates the pivoting matrix for m. 
    n = len(A) 
    ID = [[float(i == j) for i in xrange(n)] for j in xrange(n)] 
    for j in xrange(n): 
     row = max(xrange(j, n), key=lambda i: abs(A[i][j])) 
     if j != row: 
      ID[j], ID[row] = ID[row], ID[j] 
    p = ID 

    #perform matrix multplication 
    TA = zip(*A) 
    A2 = [[sum(eP*ea for eP,ea in zip(P,a)) for a in TA] for P in p] 

    for j in xrange(n): 
     L[j, j] = 1.0 
     for i in xrange(j+1): 
      s1 = sum(U[k, j] * L[i, k] for k in xrange(i)) 
      U[i, j] = A2[i, j] - s1 
     for i in xrange(j, n): 
      s2 = sum(U[k, j] * L[i, k] for k in xrange(j)) 
      L[i, j] = (A2[i, j] - s2)/U[j, j] 
    return (L, U, p) 

print (lu(inputMat)) 

ответ

3

Вы установили версию NumPy 64 bit и использовании версии 32 bit из питона или наоборот. Вы можете установить скомпилированную бинарные из here

+0

https://www.python.org/downloads/release/python-342/ Должен ли я загружаю Windows x86 MSI инсталлятор? Я уверен, что первый раз загрузил установщик MSI для Windows x86-64, потому что у него было 64 в имени –

+0

@JuniorMint, тогда вы, возможно, установили 32-разрядную версию numpy, как вы установили numpy? –

+0

А, я вижу http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/, я выбрал win32 .exe, но я не вижу индикатора для 64 бит? –