15

我在 Window 7 操作系统上有 Python 2.7。我希望使用 py2exe 将我的 project.py 打包到一个可执行文件中。按照说明我写了一个 setup.py 文件

from distutils.core import setup
import py2exe

setup(console=["project.py"])  

我收到了这条消息

在此处输入图像描述

我试图排除“ libiomp5md.dll

from distutils.core import setup
import py2exe

setup(console=["SegmentationAccuracy.py"])

dll_excludes = ['libiomp5md.dll']

但我总是收到相同的错误消息“错误:libiomo5md.dll:没有这样的文件或目录”

我的可执行文件包含:

import math
import os
import numpy as np
import sys
import ogr
from progressbar import ProgressBar
from shapely.geometry import Polygon
nan = np.nan
4

4 回答 4

29

import numpy我有同样的问题,但在内部调用setup.py解决了问题

于 2013-04-09T16:34:02.333 回答
9

libiomp5md.dll来自英特尔 C 编译器,用于OpenMP多处理操作。我希望您的代码涉及numpy或使用英特尔编译器编译的代码,因此您的py2exe构建取决于它。

没有它你不能简单地创建一个构建,所以我建议在你的系统上找到它并将它复制到你运行的目录中python setup.py py2exe。提示,我有一个副本C:\Python27\Lib\site-packages\numpy\core

[如果你真的想排除它,你将不得不numpy使用 Visual Studio 或 Msys 手动编译。]

一旦你libiomp5md.dll进入你正在执行的目录,python setup.py py2exe那么你只需要删除该exclude_dll行(因为你不想排除它......)

from distutils.core import setup
import py2exe

setup(console=["SegmentationAccuracy.py"])
于 2013-03-18T15:45:35.037 回答
0

我有同样的问题。我必须在机器上安装 numpy,使用 mingw gcc 编译器完成。我确认:在 C:\Python27\Lib\site-packages\numpy\core\ 中找到 dll 的副本

我只是在启动安装程序之前将其复制到工作目录。

在 setup.py 中没有什么特别的调整,依赖项会自动找到。

于 2014-09-26T08:31:23.250 回答
0

好的,我有同样的问题。原来,sklearn 中的 .pyd 文件引用了 libiomp5md.dll。Py2exe 在两个位置查找您的 DLL - 在路径环境变量和 .pyd 文件所在的同一目录中。 libiomp5md.dll 都不在其中。Py2exe 几乎放弃了,而不是给出完整的路径名,例如 c:\Python27\lib\site-packages\numpy\core\libiomp5md.dll,它说“libiomp5md.dll”,后来它不能寻找。

我很不耐烦。我在我的设置文件中添加了一行:

os.environ["PATH"] += os.pathsep + os.path.dirname(numpy.core.file )

这就是 libiomp5md.dll 所在的位置。现在一切正常。只需确保在调用 setup 之前在代码中执行此操作,它也会为您服务。

于 2014-11-14T21:13:00.263 回答