Python Py2Exe,[Errno 2]没有这样的文件或目录:';numpy atlas.dll';
我已经在我的程序中加入了matplotlib,我在谷歌上搜索了numpy_atlas.dll,我似乎是地球上唯一一个有这个问题的人 setup.py 运行Py2Exe会导致错误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位于用户的计算机上。我
听起来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(...)