Py2Exe, [Errno 2] Нет такого файла или каталога: 'numpy-atlas.dll'

Я включил matplotlib в свою программу, я искал о numpy_atlas.dll в google, и я, кажется, единственный на Земле с этой проблемой.

setup.py

from setuptools import setup
import py2exe

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

Запуск Py2Exe приводит к ошибке

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'

Ответ 1

Похоже, что py2exe не может найти dll. Следующее script сделает py2exe тихим:

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

)

Вам все равно нужно убедиться, что dll находится на пользовательском компьютере. Я считаю, что numpy-atlas.dll является одной из зависимостей matplot.

Также рассмотрите возможность использования PyInstaller, если все остальное не работает.

Ответ 2

Это то, что сработало для меня. Я нашел dll: C:\Python27\Lib\site-packages\numpy\core\numpy-atlas.dll и скопировал его в ту же папку, у которой есть setup.py

Ответ 3

Я столкнулся с той же проблемой. После небольшого тестирования, добавление каталога numpy.core в sys.path, казалось, сработало.

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