1

我有一个 python 应用程序,我想提取可执行文件。我在其他脚本中使用 py2exe 没有问题。但是在这一个中,我遇到了我认为与我导入和使用 scipy 的事实有关的错误。

我的代码在 Eclipse 中运行良好。最初尝试使用 scipy 制作程序时,我丢失了 3 个 dll(“libmmd.dll”、“MSVCP90.dll”、“libifcoremd.dll”)。起初,我从 setup.py 中排除了这些,并且创建了 .exe 文件,但它没有运行。之后,我下载了 dll 文件(也删除了 setup.py 的排除项)并将它们添加到“C:\Python27\DLLs”以及“C:\Windows\System32”和“C:\Windows\SysWOW64”中(我有 64 位 windows7)。exe再次在文件夹dist中创建,但尝试运行它我得到了这个:http: //imageshack.us/photo/my-images/145/py2exe.png/

然后我尝试用 cx_Freeze 来做。再次创建了 .exe 文件,但出现此错误:http: //img521.imageshack.us/img521/3843/cxfreeze.png

所以我认为它与 py2exe 或 cx_Freeze 无关,但事实上 scipy 需要一些依赖项,这些依赖项出于某种原因在 eclipse 中工作,但不是在我制作可执行文件时。

有人遇到过这个问题吗?关于我应该做什么的任何想法?先感谢您!

编辑:我用 pyinstaller-2.0. 起初它没有运行。然后我将 DLL 添加到文件夹中,之后我将 numpy 和 scipy 添加到文件夹中,最后在出现错误消息后,我将 kdtree.py 添加到文件夹中。我很高兴看到它运行了!但后来又失望了,因为它只能在我的电脑上运行(那里有一些有用的 .exe)!我将它添加到一个保管箱文件夹中,它在我身上运行没有问题,但对其他人没有问题。我试过的其他机器的错误是:

importError:DLL 加载失败:%1 不是有效的 Win32 应用程序

4

1 回答 1

0

您可以尝试将 DLL 文件直接放在可执行文件旁边。我的 py2exe 还提供了一些有关您可能需要与应用程序一起分发的二进制文件的信息:

*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.
//Snip list of paths to dlls
于 2012-12-03T07:01:10.337 回答