2015-05-09 13 views
5

Ho installato l'ultima versione di Numpy successo e sto usando Python 3.4, non ci sto capendo questo errore:Python: Carico DLL non riuscita:% 1 non è un'applicazione di Win32 valida

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. 

il codice:

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)) 

risposta

3

è stata installata una versione di 64 bit NumPy e si utilizza una versione 32 bit di pitone o viceversa. È possibile installare un binario precompilato da here

+0

https://www.python.org/downloads/release/python-342/ Dovrei essere scaricato Windows installer MSI X 86? Sono abbastanza sicuro di aver scaricato il programma di installazione MSI per Windows x86-64 la prima volta perché aveva 64 nel nome –

+0

@JuniorMint, quindi potresti aver installato una versione di numpy a 32 bit, come hai installato numpy? –

+0

Ah, vedo http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/, ho scelto il file win32 .exe, ma non vedo alcun indicatore per 64 bit? –

Problemi correlati