Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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,使用scipy时无法从脚本生成可执行文件_Python_Scipy_Exe_Py2exe_Cx Freeze - Fatal编程技术网

python,使用scipy时无法从脚本生成可执行文件

python,使用scipy时无法从脚本生成可执行文件,python,scipy,exe,py2exe,cx-freeze,Python,Scipy,Exe,Py2exe,Cx Freeze,我有一个python应用程序,我想提取可执行文件。我在其他脚本中使用了py2exe,没有问题。但在这个例子中,我发现了一些错误,我认为这些错误与我导入和使用scipy有关 我的代码在eclipse中运行良好。尝试使用scipy创建该过程时,首先我得到了3个dll缺少libmmd.dll、MSVCP90.dll和libifcoremd.dll。起初,我将这些从setup.py中排除,并创建了.exe文件,但它没有运行。在下载dll文件之后,我还删除了setup.py的排除项,并将它们添加到C:\P

我有一个python应用程序,我想提取可执行文件。我在其他脚本中使用了py2exe,没有问题。但在这个例子中,我发现了一些错误,我认为这些错误与我导入和使用scipy有关

我的代码在eclipse中运行良好。尝试使用scipy创建该过程时,首先我得到了3个dll缺少libmmd.dll、MSVCP90.dll和libifcoremd.dll。起初,我将这些从setup.py中排除,并创建了.exe文件,但它没有运行。在下载dll文件之后,我还删除了setup.py的排除项,并将它们添加到C:\Python27\dll以及C:\Windows\System32和C:\Windows\SysWOW64中。我有64位windows7。同样,exe是在文件夹dist中创建的,但尝试运行时,我得到以下结果:

然后我试着用cx_Freeze来做。再次创建.exe文件,但出现以下错误:

因此,我认为这与py2exe或cx_Freeze无关,但与scipy需要一些依赖项这一事实有关,这些依赖项出于某种原因在eclipse中可以工作,但与我生成可执行文件时无关

有人面对过这个问题吗?我该怎么做有什么想法吗? 提前谢谢你

编辑:我是用pyinstaller-2.0做的。起初它没有运行。然后我将DLL添加到文件夹中,然后我将numpy和scipy添加到文件夹中,最后在出现错误消息后,我将kdtree.py添加到文件夹中。看到它运行起来我很激动!但后来又失望了,因为它只在我的电脑上运行一些有用的.exe文件!我将文件夹添加到dropbox文件夹中,从那里它在我体内运行,没有问题,但对其他人没有问题。我尝试的其他机器中的错误是:


导入错误:DLL加载失败:%1不是有效的Win32应用程序

您可以尝试将DLL文件直接放在可执行文件旁边。此外,my 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

你确定你下载的DLL是64位的吗?如果你有cygwin,你可以用file命令检查它。如果你在下载之前没有这些DLL,你有没有搜索过你的系统?我想它们是64位的。我已经下载了cygwin,但是如何使用file命令呢?假设我想测试msvcp90.dll是否在C:\Python27\dll上。无论我尝试什么,它都会输出msvcp90.dll:错误:无法打开“msvcp90.dll”没有这样的文件或目录。因为如果我有此dll,我在添加它们的文件夹中没有它们,但我在其他文件夹中找到了它们,例如在visual studio for msvcp90.dll中。谢谢你的建议!但是我也在numpy文件夹中将这些版本添加到了python文件夹中,但仍然不起作用谢谢,我已经看到了py2exe给出的列表,并将所有这些文件添加到了可执行文件所在的dist文件夹中。仍然没有成功: