Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Py2Exe,[Errno 2]没有这样的文件或目录:';numpy atlas.dll';_Python_Numpy_Matplotlib_Py2exe - Fatal编程技术网

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

Python Py2Exe,[Errno 2]没有这样的文件或目录:';numpy atlas.dll';,python,numpy,matplotlib,py2exe,Python,Numpy,Matplotlib,Py2exe,我已经在我的程序中加入了matplotlib,我在谷歌上搜索了numpy_atlas.dll,我似乎是地球上唯一一个有这个问题的人 setup.py 运行Py2Exe会导致错误 听起来py2exe找不到dll。以下脚本将使py2exe保持安静: distutils.core.setup( options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } }, ... ) 您仍然需要确保dll位于用户的计算机上。我

我已经在我的程序中加入了matplotlib,我在谷歌上搜索了numpy_atlas.dll,我似乎是地球上唯一一个有这个问题的人

setup.py 运行Py2Exe会导致错误
听起来py2exe找不到dll。以下脚本将使py2exe保持安静:

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

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


如果所有其他的都失败了,请考虑使用Py安装程序。 这就是我的工作。 我找到了dll:C:\Python27\Lib\site packages\numpy\core\numpy-atlas.dll


并将其复制到具有setup.py的同一文件夹中。我遇到了相同的问题。经过一点测试后,将
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(...)

你知道如何绑定exe以便包含所有玩偶依赖项吗?.dll应该位于可执行文件旁边的dist目录中。我还没有尝试过你的解决方案,我会确保尝试它并选择你的答案(如果可行)。我不知道你的答案是否可行,但PyInstaller绝对令人惊讶。也许将其添加到您的答案中,我会选择它。我刚刚得到了那个错误,但我的安装脚本中已经有这一行:
“dll\u排除”:[“MSVCP90.dll”]
。令人沮丧的是,似乎每次我重新访问这个脚本一段时间后,它都会出现另一个随机丢失的dll,尽管我之前能够在没有numpy-atlas.dll的情况下运行py2exe,而且我还没有对应用程序的依赖项进行重大更改。还有其他人有类似的经历吗?我之前排除了PyInstaller,因为它与Canopy Python的配合不太好,但也许我应该再试一次……当我重新安装Python时,出现了这个问题。在此之前,我的脚本工作得非常好。我在C:\Anaconda2\Lib\site packages\numpy\core中找到了该文件,但由于某些原因,py2exe找不到它。以前,我使用的是python(x,y),但我切换到了Anaconda(仍然是python 2.7.x)。无法确认,但听起来合法。可以确认。被接受的答案不起作用。这一个做到了。升级到numpy 1.11后,我遇到了这个错误。Atlas不是numpy的要求,所以它不会对所有用户都起作用。@bremen_matt问题明确地说numpy_Atlas缺失,所以答案是正确的。也为我起作用。为我起作用3!这工作得很好,优点是不需要手动将dll复制到applicaton文件夹。
distutils.core.setup(
options = {
    "py2exe": {
        "dll_excludes": ["MSVCP90.dll"]
    }
},
...
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(...)