cx冻结无法生成numpy executab

2024-09-30 20:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是cx_freeze开发版本(正如建议的here,也尝试过最新的稳定版本1.3.1),我试图从一个导入numpy和一个令人兴奋的树冠发行版的文件中为windows构建一个可执行文件。这是文件test.py

import numpy as np

def f(x):

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

if __name__ == '__main__':
    print f(5)

这是设置.py文件:

^{pr2}$

这是运行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.

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


Tags: inpyimportnumpyliblocallineusers
1条回答
网友
1楼 · 发布于 2024-09-30 20:34:24

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

  1. mk2型_核心.dll在
  2. MK2OMP5md.dll在

编辑cxFreeze构建例程,使这两个文件复制到与可执行文件相同的目录(构建目录)。在那之后,试着运行exe,这应该可以解决问题(不管怎样,它对我来说都是如此)。在


我怎么知道的?你说你注意到了纽比·利纳格·拉帕克·莱特.p.yd文件。我所做的是使用一个名为DependencyWalker(website)的工具打开了这个文件。这个程序分析一个文件的所有DLL依赖关系。经过分析,它告诉我那两个DLL文件不见了。在

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

相关问题 更多 >