从使用 pyinstaller 导入 theano 的 python 3 脚本构建适用于 Windows 的 .exe

2023-12-27

2017年9月2日下午1点编辑

经过多次尝试后,我最终成功地用 pyinstaller 构建了一个 .exe。

不幸的是,我未能处理“theano”模块(在我的情况下是“pymc3”模块所需的),我不得不修改 .py 文件并放弃部分应用程序。我下面的描述有两个目的:首先它可能有帮助;第二任何人都可以帮助我使用“theano”模块构建适用于 Windows 7+ 的 .exe 吗?

提醒:我的 python 3 脚本在“.ui”文件中打开一个用 Qt Designer 制作的简单 GUI,并导入 pyqtgraph(使用 pyqt5)、pymc3(以及 pymc3 所需的 theano)、scipy、numpy、os、sys。它将在运行 Windows 7+ 的计算机上分发。我尝试用 py2exe、cx_freeze、pynsist 和 pyinstaller 构建一个“.exe”(我打开并更新了几篇文章,这个仍然是打开的:从导入 pyqtgraph 并打开 GUI 的 python 3 脚本构建适用于 Windows 的 .exe https://stackoverflow.com/questions/45734926/build-a-exe-for-windows-from-a-python-3-script-importing-pyqtgraph-and-opening)但都失败了。在我不得不放弃 theano 后,我的最佳结果(使用 pyinstaller)如下所述。

  • 我最终得到的命令行是:pyinstaller —noupx —onefile —add-data “toto.ui;.” toto.py。但奇怪的是:

1 不包含 qt 设计器文件“toto.ui”,必须与 .exe 一起分发。否则,运行 .exe 时会出现错误消息,提示找不到 toto.ui;

2 python环境的“Library/plugin”目录中的“platforms”目录也必须与.exe一起分发。否则,运行 .exe 时会出现错误消息“此应用程序无法启动,因为找不到 qt” 平台插件 windows’(但构建时 pyinstaller 没有错误消息!)

3.exe有220MB大!似乎 pyinstaller 在构建过程中包含了一堆无用的东西。

  • pyqtgraph问题:

乍一看,模块“pyqtgraph”似乎与 pyinstaller 不兼容。事实上,当python代码导入pyqtgraph时,pyinstaller给出了一个SyntaxError:‘yield’ inside async function。在我看来,这似乎很尴尬(这是 pyinstaller 中的错误吗?)因为我从论坛上得到的印象是,这与仅与 python 3.6 兼容的异步生成器有关,而 pyinstaller 仅适用于与异步不兼容的 python 3.5生成器...那么为什么 pyinstaller 使用这个呢?事实证明,这个类似 bug 的功能在未发布的新版本 pyinstaller 中被禁用(因此默认情况下未安装):pip install git+https://github.com/pyinstaller/pyinstaller,感谢 9dogs(在评论中)。我还发现在 py 文件中导入 pyqtgraph 之前显式写入 os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5' 或 'PyQt4' 可能会有所帮助

  • 理论问题:

事实证明,theano 进行了几个 pyinstaller 未检测到的隐式导入。因此,构建看起来不错,但在运行 .exe 时,您会收到诸如“no module theano.tensor.shared_randomstreams”之类的错误消息。不幸的是,我未能使用 pyinstaller 的 '--hidden-import' 选项,因此我在 py 文件中显式添加了导入(在本例中为 'import theano.tensor.shared_randomstreams' )。

但这还不是结束:之后,文件‘…\AppData\Local\Temp_MEI35682\theano\gpuarray\blockgemv.c’丢失,导致[4128] Failed to execute script。我不知道这个文件是什么,也没有找到信息。我放弃并删除了部分 GUI 以避免 theano。任何人都可以帮助我使用 theano 和 pyinstaller 吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从使用 pyinstaller 导入 theano 的 python 3 脚本构建适用于 Windows 的 .exe 的相关文章

  • 使用.NET代码将系统时间同步到域控制器

    我要运行基于时间的测试 需要在测试期间多次更改系统时间 我希望能够在测试结束时将时间重新同步到域控制器时间 我有任何方法可以使用 NET 代码 C 来做到这一点 我正在使用以下位置的 p invoke 函数更改时间 使用 C 以编程方式设置
  • Windows GUI 控件 ID 是如何创建的?

    在 Windows 中 对于每个控件 例如每个对话框 窗口 文本框和复选框等 都会给出一个控件 ID 这个控件id是如何创建的 Windows 中的两个应用程序可以具有相同的控件 ID 吗 有没有办法手动设置 Windows 控件 ID 控
  • Python pip install 未找到所需版本

    我使用的是Python 3 7 pip版本 10 0 1 操作系统 Windows 10 在 CMD 中 我使用以下命令安装依赖项 Python m pip install requirements txt 但它显示此消息 找不到满足要求的
  • 如何枚举进程中所有命名管道的名称?

    我需要打开某个命名管道 以便可以对其进行模糊测试 但是我的测试代码无法访问用于生成命名管道名称的相同数据 不过 我可以识别管道的名称 然后使用该名称打开管道进行模糊测试 我使用此论坛帖子开始枚举系统上句柄的名称 http forum sys
  • 在 Windows 下对 Unix 下创建的文件使用 fstream::seekg

    我有一个C 跨平台程序 在Linux下用g 编译 在PC下用Visual Studio编译 该程序将行写入文本文件 使用 lt lt 运算符和std endl 但也可以从生成的文本文件中读回数据 使用std getline 为了优化数据访问
  • windows服务器中机器名有什么限制?

    我需要将机器名称存储在数据库字段中 因此我需要知道该字段有多大 那么机器名的长度有限制吗 如果是这样 限制是多少 机器名可以是 Unicode 吗 此知识库文章指出 FQDN 为 255 个字节 并且它确实支持 Unicode http s
  • 如何使用ansible扩展Windows路径变量

    使用 win environment 可以向 Windows 主机添加 删除环境变量 但是要修改已经存在的变量 win environment 似乎没有用 因为您无法读取旧值来修改和更新变量 正确的 EDIT 从 Ansible 2 3 开
  • 如何通过双击使该 file.sh 可执行?

    首先我用的是Mac 接下来 我需要执行这个 file sh 我们将调用它 每次我需要执行它时 我都必须打开终端并输入 cd Users Jacob Documents folderWithFileInIt bash file sh 这没关系
  • 批处理 - IF ELSE 启动功能的条件无论如何都会执行

    提前抱歉 如果这里有一个线程可以回答我的问题 我从周五开始就一直在这个问题上并四处寻找 我确实发现了一些类似的问题 但我无法应用或适应这个问题 据我所知 简而言之 我有一个批处理脚本 它创建目录的文本文件 然后该脚本在目录中搜索文件 如果文
  • argparse - 禁用相同参数的出现

    我正在尝试使用 argparse 禁用一个命令行中出现相同的参数 python3 argument1 something argument2 argument1 something else 这意味着这应该会引发错误 因为 argument
  • 有哪些 API 可在 Windows 中使用 C# 配置扬声器设置?

    我环顾了很多不同的地方 但似乎找不到一个简单的方法来做到这一点 我在 Windows 7 中有多个声卡 并使用 HDMI 将声音输出到我的 AVR 放大器 我遇到的问题是 当放大器关闭时 它会导致窗口丢失扬声器配置 所以我想做的是编写一个小
  • 如何从命令行设置Sphinx的`exclude_patterns`?

    我在 Windows 上使用 Sphinx 我的大部分文档都是针对普通用户的 但也有一些子页面的内容仅供管理员使用 因此 我想构建文档的两个版本 一个完整 版本 以及排除 管理 页面的第二个版本 我用的是exclude patterns在构
  • 在虚拟主机内创建别名目录

    我检查了here https stackoverflow com questions 5552081 using a directory in virtualhost servername here http www rafael chac
  • Python - 元类装饰器 - 如何使用@classmethod

    我有以下 Python 元类 它添加了deco with args每个类的装饰器 def deco with args baz def decorator func return func return decorator class Fo
  • 标准化 Unicode

    在Python中是否有一种标准方法来规范化unicode字符串 以便它只理解可用于表示它的最简单的unicode实体 我的意思是 可以翻译类似序列的东西 LATIN SMALL LETTER A COMBINING ACUTE ACCENT
  • _启动服务器时 Django 中出现死锁错误

    我在启动 python 服务器时多次遇到此错误 当我更改任何文件并且服务器再次启动时也会发生这种情况 我尝试删除环境并重新创建环境 但仍然存在相同的错误 Python 3 5 2 默认 2018 年 11 月 12 日 13 43 14 G
  • 为什么 Windows 使用 CR LF?

    我了解两者之间的区别 因此没有必要深入讨论 但我只是想知道 Windows 同时使用 CR 和 LF 来指示换行符背后的原因是什么 看起来 Linux 方法 仅使用 LF 更有意义 节省空间 并且更容易解析 Historically whe
  • 尝试在 Keras 中创建 BLSTM 网络时出现类型错误

    我对 Keras 和深度学习有点陌生 我目前正在尝试复制这个paper https pdfs semanticscholar org 4afe f0c6039a5d8b647518b6fe05f47a8bd3aeee pdf但是当我编译第二
  • Python - 可编辑 Gtk.TreeView 单元格中的自动完成

    我最近在 QTable 中使用 QComboBox 编写 PyQt 代码 QComboBox 默认启用自动完成功能 我想尝试用 Gtk3 在 Python3 中重现这个 我遇到过这个例子 Gtk TreeView 中的 Gtk Entry
  • $ 之间的区别?和 PowerShell 中的 $LastExitCode

    在 PowerShell 中 有什么区别 and LastExitCode I read 关于自动变量 http technet microsoft com en us library dd347675 aspx 它说 Contains t

随机推荐

  • 在python中用字符串打印偶数字符

    s Abrakadabra for k in len s if k 2 1 print s k 这段代码不起作用 问题出在哪里 您正在尝试迭代 int len s 我认为你只是错过了range功能 s Abrakadabra for k i
  • NSTextFieldCell 垂直对齐,解决方案似乎挤压了水平对齐

    我有一个 NSTextFieldCell 我希望以中间垂直对齐方式显示 感谢这里的一个旧问题和一篇博客文章 我有两个可行的解决方案 然而 这两种解决方案似乎都削弱了我将单元格设置为右对齐的能力 谁能帮助我使这些解决方案中的任何一个都支持两种
  • JIRA:查找我上周记录的所有工作

    我如何创建一个 JIRA 过滤器来列出我遇到的所有问题 记录时间 然后我可以将其应用到活动流 通过 JQL 使用高级搜索 worklogAuthor currentUser AND worklogDate gt 2016 12 01 AND
  • 如何用python打开mp4文件?

    我试图制作一个使用默认 Windows 应用程序播放电影的脚本 但是当我尝试运行此脚本时 出现错误 强制转换为 Unicode 需要字符串或缓冲区 找到函数 我应该如何进行 import os print Push enter to pla
  • 使用 VBA 解析 JSON (Access 2010)

    我需要使用下面的 JSON 文件更新 MS Access 中的货币表 timestamp 1465843806 base CAD rates AED 2 87198141 AFN 54 21812828 ALL 95 86530071 AM
  • 如何向 Android 原生“编辑文本”上下文菜单添加选项

    是否可以将某些内容添加到用户长按任何编辑文本时显示的项目列表中 剪切 复制粘贴 选择文本 全选 输入法 我想在此菜单中添加另一个选项 但无法弄清楚 这个问题有重复的here https stackoverflow com questions
  • 如何防止用户更改系统日期/时间(在 Android 中)?

    我用谷歌搜索过 但我找不到任何建议来阻止用户更改 android 中的系统日期 时间 我们正在开发一个企业应用程序 我们希望阻止设备的用户能够设置时间设置 换句话说 我们想要设置一个策略来定义用户不能更改 Android 设备中的日期和时间
  • 安装的Python脚本无法导入包模块

    我创建了一个具有以下目录结构的 Python 包 LICENSE MANIFEST IN README rst VERSION docs multitool init py core init py classes py utils py
  • 从 Visual Studio 2017 在 Chrome 中调试网站时启用扩展

    从 Visual Studio 2015 切换到 2017 我发现启动 Web API 项目现在会启动一个干净 独立的 Chrome 窗口 在很大程度上我喜欢这样 而且我当然喜欢这个想法 但是 这也意味着Chrome 中缺少扩展程序 有没有
  • 限制 GWT 中的小数位数?

    在纯 Java 中 我通常会使用如下所示的函数来将小数位数限制为decimalCount对于给定的数字value 但是 根据 GWT 文档 GWT 不提供对日期和数字格式化类 例如 java text DateFormat java tex
  • 如何在Python 3.6中等待声音文件以vlc结尾

    我在 python 中的 vlc 有一个问题 import vlc sound vlc MediaPlayer sound mp3 sound play i wanna wait until the sound ends then do s
  • Java:没有 AtomicFloat 或 AtomicDouble 吗?

    我已经发现AtomicInteger AtomicLong 但是在哪里AtomicFloat or AtomicDouble 也许有什么技巧 API 文档为java util concurrent package http download
  • 在多租户数据库中索引 TenantID

    我正在为应用程序创建多租户数据库 我在每个表方法中都使用了 TenantID 效果非常好 我正处于性能调整阶段 我的问题是 每个表中的每个 TenantID 是否都应该建立索引以进行优化搜索 因为数据库上的每个查询都会在此列上进行过滤 期待
  • 在node.js中重新定义变量

    该脚本的执行 tmp js 其中包含 var parameters 1 eval var parameters a 1 1 eval console log parameters node tmp js 产生 如果我们注释掉第一条语句 并再
  • 使用.NET Moq时如何转发到另一个对象?

    给定一个对象 我想创建一个模拟 它实现该对象的接口并模拟一个方法 但将其余方法转发给真实对象 不是基类 例如 ISqlUtil sqlUtil GetTheRealSqlUtilObjectSomehow var mock new Mock
  • 如何获得更多的饲料项目?

    如何获取 Feed 的下一页或更多结果 例如 当我去现在安全 http leoville tv podcasts sn xmlfeed 页面 没有任何类型的 下一个 链接 并且 page 100 的 url 参数不执行任何操作 http l
  • 权限如何在 mac 上运行 sbin 命令?

    我正在使用 mac os x 并且我正在尝试运行shutdown命令但它说我不是超级用户 不过 我可以跑ifconfig无需成为超级用户 这两个命令都在 sbin 中 我的 PATH 环境变量包括 sbin 这就是为什么我可以运行 ifco
  • Mathf.Floor 与 (int) 的性能比较

    当我想知道哪个更快时 我正在创建和翻译一些算法 a int float or b Mathf FloorToInt float 提前致谢 编辑 如果有比这两种方法更快的方法 那也会有帮助 像我提到的那样用秒表进行测试 这个答案在这里是因为我
  • 查询外键嵌套for循环django

    我正在尝试返回企业的类别列表 对于每个类别 我想列出与该类别相关的所有项目 我要退回所有物品 而不是按类别 但我决定要按类别对它们进行排序 这就是我所尝试过的 以及其他尝试 我只是无法将这些项目归入这些类别 这是我最新的尝试 在我的 mod
  • 从使用 pyinstaller 导入 theano 的 python 3 脚本构建适用于 Windows 的 .exe

    2017年9月2日下午1点编辑 经过多次尝试后 我最终成功地用 pyinstaller 构建了一个 exe 不幸的是 我未能处理 theano 模块 在我的情况下是 pymc3 模块所需的 我不得不修改 py 文件并放弃部分应用程序 我下面