Py2Exe,[Errno 2]没有这样的文件或目录:' numpy-atlas.dll'

时间:2016-03-24 01:33:03

标签: python numpy matplotlib py2exe

我在我的程序中包含了matplotlib,我搜索了google上的numpy_atlas.dll,我似乎是地球上唯一一个遇到此问题的人。

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'

3 个答案:

答案 0 :(得分:17)

这对我有用。 我找到了DLL:C:\ Python27 \ Lib \ site-packages \ numpy \ core \ numpy-atlas.dll 并将其复制到具有setup.py

的同一文件夹中

答案 1 :(得分:13)

我遇到了同样的问题。经过一些测试后,将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(...)

答案 2 :(得分:0)

听起来像py2exe找不到dll。以下脚本将使py2exe安静:

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

您仍然需要确保dll在用户的计算机上。我相信numpy-atlas.dll是matplot依赖项之一。

如果其他一切都失败,还要考虑使用PyInstaller。