Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 cx\U冻结无法生成numpy可执行文件_Python_Numpy_Enthought_Cx Freeze - Fatal编程技术网

Python cx\U冻结无法生成numpy可执行文件

Python cx\U冻结无法生成numpy可执行文件,python,numpy,enthought,cx-freeze,Python,Numpy,Enthought,Cx Freeze,我使用的是cx\u freeze开发版本(根据建议,我还试用了最新的stable 1.3.1),并且我尝试从导入numpy和Enthound Canopy发行版的文件中为windows构建一个可执行文件。这是文件test.py: import numpy as np def f(x): y = np.linspace(0,x,1000) return y if __name__ == '__main__': print f(5) 这是setup.py文件: imp

我使用的是
cx\u freeze
开发版本(根据建议,我还试用了最新的stable 1.3.1),并且我尝试从导入numpy和Enthound Canopy发行版的文件中为windows构建一个可执行文件。这是文件
test.py

import numpy as np

def f(x):

    y = np.linspace(0,x,1000)
    return y

if __name__ == '__main__':
    print f(5)
这是setup.py文件:

import sys
from cx_Freeze import setup, Executable

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
    base = None

setup(  name = "foo",
        version = "0.1",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("test.py", base=base)])
这是我在运行exe时遇到的错误:

Traceback (most recent call last):
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\cx_
freeze-4.3.1-py2.7-win32.egg\cx_Freeze\initscripts\Console.py", line 27, in <mod
ule>
    exec code in m.__dict__
  File "test.py", line 7, in <module>
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\__init__.py", line 143, in <module>
    import add_newdocs
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\lib\__init__.py", line 13, in <module>
    from polynomial import *
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\lib\polynomial.py", line 17, in <module>
    from numpy.linalg import eigvals, lstsq, inv
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\linalg\__init__.py", line 48, in <module>
    from linalg import *
  File "C:\Users\Zah\AppData\Local\Enthought\Canopy32\User\lib\site-packages\num
py\linalg\linalg.py", line 23, in <module>
    from numpy.linalg import lapack_lite
  File "ExtensionLoader_numpy_linalg_lapack_lite.py", line 22, in <module>
  File "ExtensionLoader_numpy_linalg_lapack_lite.py", line 14, in __bootstrap__
ImportError: DLL load failed: No se puede encontrar el m¾dulo especificado.
回溯(最近一次呼叫最后一次):
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\cx_
freeze-4.3.1-py2.7-win32.egg\cx\u freeze\initscripts\Console.py”,第27行,在
m.\u dict中的执行代码__
文件“test.py”,第7行,在
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\\uuuuu init_uuuuuu.py”,第143行,在
导入添加新文档
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\add_newdocs.py“,第9行,在
从numpy.lib导入添加新文档
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\lib\\uuuuu init\uuuuuu.py”,第13行,在
从多项式导入*
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\lib\polymonent.py”,第17行,在
从numpy.linalg进口eigvals、lstsq、inv
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\linalg\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
从linalg进口*
文件“C:\Users\Zah\AppData\Local\enthund\Canopy32\User\lib\site packages\num
py\linalg\linalg.py”,第23行,在
从numpy.linalg导入lapack_lite
文件“ExtensionLoader\u numpy\u linalg\u lapack\u lite.py”,第22行,in
文件“ExtensionLoader\u numpy\u linalg\u lapack\u lite.py”,第14行,在引导程序中__
导入错误:DLL加载失败:没有单独的控制台文件。

我注意到在build目录中有一个
numpy.linalg.lapack_lite.pyd
文件。

在Python安装目录中,转到脚本目录(即C:/Python27/Scripts)。在此文件夹中,您应该可以找到两个DLL文件:

  • mk2_core.dll
  • mk2iomp5md.dll
  • 编辑cxFreeze生成例程,以便将这两个文件复制到与可执行文件相同的目录(生成目录)。在那之后,试着运行exe,这应该可以解决这个问题(不管怎样,它确实为我解决了)


    我怎么知道的?你说你注意到了numpy.linalg.lapack_lite.p.yd文件。我所做的是使用一个名为DependencyWalker()的工具打开这个文件。该程序分析文件的所有DLL依赖关系。经过分析,它告诉我这两个DLL文件丢失了


    我真的希望这能有所帮助,我知道这些事情是多么令人沮丧

    你找到答案了吗?可以帮助我使用PyInstaller。这也是一种痛苦,但最终还是奏效了。是的,我也用pyinstaller解决了这个问题。thanksI在脚本目录(即C:/Python27/Scripts)或我的计算机中的任何其他目录中都找不到这些文件(mk2_core.dll或mk2iomp5md.dll)。