首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用cx-Freeze将scipy冻结为可执行文件,则会出现错误

如果使用cx-Freeze将scipy冻结为可执行文件,则会出现错误
EN

Stack Overflow用户
提问于 2017-03-13 16:31:13
回答 1查看 343关注 0票数 1

目前我面临着一个关于scipy和cx-Freeze的问题。

代码语言:javascript
复制
Windows 7 Enterprise (64-Bit);
Python 3.5.2|Anaconda 4.2.0 (64-bit);
scipy 0.18.1;
cx-Freeze 5.0.1;

我想将python脚本冻结为可执行文件。下面你可以找到源代码和freeze脚本。

main.py

代码语言:javascript
复制
import scipy

if __name__ == '__main__':
    print('Test dirstribution methods!')

这就是main.py文件。

setup.py

代码语言:javascript
复制
import sys
from cx_Freeze import *

packages = ['numpy']
excludes = ['tkinter']

distTest_Target = Executable(
    script = "main.py",
    base = "Console",
    shortcutName="distTest",
    targetName = "distTest.exe"
)

build_exe_options  = {
    "packages": packages,
    "excludes":excludes
}

setup(name='distTest',
    version='1.0.0',
    description='distTest (64-bit)',
    options = {"build_exe": build_exe_options},
    executables=[distTest_Target]
)

构建过程执行时没有错误,但是如果我尝试启动exe,我得到以下错误:Figure: Error during execution of exe

如果我尝试将'scipy‘添加到包列表中,比如packages = ['numpy','scipy'],我会在构建过程中得到另一个错误:Figure: scipy ImportError

有没有人知道哪里出了问题?提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 15:38:14

安装最新版本的Anaconda (4.3.1),并在cx_freeze包中编辑hooks.py:

代码语言:javascript
复制
finder.IncludePackage("scipy.lib")

替换为:

代码语言:javascript
复制
finder.IncludePackage("scipy._lib")

解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42759262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档