2015-05-09 16 views
5

değil ve Python 3.4 kullanıyorum, ben anlayamıyorum bu hata:Python: DLL yükü başarısız:% 1 başarıyla Numpy en son sürümünü yükledim geçerli bir Win32 uygulaması

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. 

kod:

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

cevap

3

Sen Numpy bir 64 bit sürümünü yüklemiş ve tersi bir 32 bit piton sürümünü veya kullanıyorsunuz. Sen Windows x86 MSI yükleyici indirmeyi olmalı here

+0

https://www.python.org/downloads/release/python-342/ bir önceden oluşturulmuş ikili yükleyebilirsiniz? Windows x86-64 MSI yükleyicisini ilk kez indirdiğimden eminim, çünkü bu adda –

+0

@JuniorMint adında 64 tane vardı, o zaman 32 bitlik bir numpy sürümü yüklemiş olabilirsiniz, numpy'yi nasıl yüklediniz? –

+0

Ah, http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/ görüyorum, win32 .exe seçtim, ama 64 bit için herhangi bir gösterge görmüyorum? –

İlgili konular