2016-03-24 19 views
11

Zawarłem matplotlib w moim programie, szukałem o numpy_atlas.dll w google i wydaje mi się, że jestem jedynym na Ziemi z tym problem.Py2Exe, [Errno 2] Brak takiego pliku lub katalogu: 'numpy-atlas.dll'

setup.py

from setuptools import setup 
import py2exe 

setup(console=['EulerMethod.py']) 

przebiegu wyniki py2exe omyłkowo

C:\(..obmitted..)>python setup.py py2exe 
running py2exe 
*** searching for required modules *** 
*** parsing results *** 
...... 
...obmitted... 
...... 
*** finding dlls needed *** 
error: [Errno 2] No such file or directory: 'numpy-atlas.dll' 
+0

Ten problem pojawił się, gdy ponownie zainstalowałem Pythona. Wcześniej mój skrypt działał doskonale. Znalazłem plik w C: \ Anaconda2 \ Lib \ site-packages \ numpy \ core, ale py2exe nie może go znaleźć z jakiegoś powodu. Poprzednio używałem Pythona (x, y), ale przełączyłem się na Anacondę (nadal python 2.7.x). – kjgregory

Odpowiedz

0

Brzmi jak py2exe nie można znaleźć biblioteki dll. Poniższy skrypt pozwoli py2exe quiet:

distutils.core.setup(
options = { 
    "py2exe": { 
     "dll_excludes": ["MSVCP90.dll"] 
    } 
}, 
... 

)

trzeba jeszcze upewnić się, że dll jest na komputerze użytkownika. Wierzę, że numpy-atlas.dll jest jedną z zależności matplot.

Należy również rozważyć użycie PyInstaller, jeśli wszystko inne zawiedzie.

+0

Czy wiesz, w jaki sposób mogę spakować plik exe, aby zawierały wszystkie zależności lalki? –

+0

. Pliki DLL powinny znajdować się w katalogu dist obok pliku wykonywalnego. – frainfreeze

+0

Nie próbowałem jeszcze Twojego rozwiązania, postaram się go wypróbować i wybrać odpowiedź, jeśli to działa. –

17

To właśnie dla mnie zadziałało. Znalazłem DLL C: \ Python27 \ Lib \ site-packages \ numpy \ rdzeń \ numpy-atlas.dll i kopiować je do tego samego folderu, który ma setup.py

+0

Nie mogę potwierdzić, ale brzmi legit. –

+0

MOŻNA potwierdzić. Przyjęta odpowiedź nie zadziałała. Ten się zrobił. Wystąpił ten błąd po uaktualnieniu do numpy 1.11. – mattrweaver

+0

Atlas nie jest wymagany do numpy, więc nie będzie działać dla wszystkich użytkowników. –

11

natknąłem się ten sam problem. Po kilku testach, dołączenie katalogu numpy.core do sys.path wydawało się działać.

from distutils.core import setup 
import py2exe 

import numpy 
import os 
import sys 

# add any numpy directory containing a dll file to sys.path 
def numpy_dll_paths_fix(): 
    paths = set() 
    np_path = numpy.__path__[0] 
    for dirpath, _, filenames in os.walk(np_path): 
     for item in filenames: 
      if item.endswith('.dll'): 
       paths.add(dirpath) 

    sys.path.append(*list(paths)) 

numpy_dll_paths_fix() 
setup(...) 
+0

Świetnie, pracował dla mnie! – TomSmartBishop

+0

Pracował również dla mnie. –

+0

Pracował dla mnie 3! –

Powiązane problemy