问题标签 [esky]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
400 浏览

python - 将 esky 与 GUI 程序一起使用?

我有一个用 python 编写并与py2exe. 我现在想使用Esky来允许自动更新。

但是,当我运行时python setup.py bdist_esky,我收到以下错误:

更改为 时scripts,出现以下错误:

我无法摆脱它。有什么帮助吗?

setup.py:http://pastebin.com/B3yGJERq

0 投票
2 回答
259 浏览

python - 通过 Esky 任务获取进度

我正在使用Esky我的冻结应用程序。它具有以下 Esky 类可用的属性和方法:

现在,这很好,但我想在我的 Gui 中显示下载任务的进度。

我怎样才能做到这一点?

0 投票
1 回答
112 浏览

python - 如何在 esky 更新之间移动配置文件?

我有一个包含我的应用程序配置的 ini 文件。

Esky 为更新版本创建新文件夹。如何确保配置文件被复制?

0 投票
1 回答
303 浏览

python - 将 sympy 与 esky 一起使用时生成错误

使用 esky 冻结应用程序时遇到以下错误。使用 py2exe 作为冷冻模块时会发生这种情况。

仅当我在代码中使用 sympy 模块并将其添加到我的 setup.py 文件中的包时,才会发生该错误。这是我的 setup.py 文件的“选项”部分:

Thomas K 的回答解决了以下问题:

如果我使用 cx_freeze 作为冷冻模块,则构建完成,但是当我尝试运行可执行文件时,我收到类似的错误:

有没有人遇到过这个问题?

0 投票
0 回答
1094 浏览

python - 使用 Esky 和 ​​zmq 模块冻结应用程序

我正在尝试使用 Esky 和 ​​cx_freeze 冻结我的应用程序。

我的 setup.py 看起来像这样:

但是,似乎 pyzmq 没有正确包含在冻结中。

我不断得到:

关于如何解决这个问题的任何想法?

EDIT2::好的,有一个答案为我解决了它>> https://bitbucket.org/anthony_tuininga/cx_freeze/issue/55/failed-with-pyzmq-1401-py33-win-amd64egg

编辑:正如建议的那样,被迫使用 cython 后端还有另一个错误堆栈跟踪:

我猜加载本机存在问题libzmq.dll(但是,zmq.libzmq.pyd结果dist文件夹中有一些),有人解决了这个问题吗?

0 投票
1 回答
930 浏览

python - Esky 的 Python 项目结构

我的问题本质上是,“我应该如何构建我冻结的、部署的基于 Python 的 Windows 应用程序的文件和文件夹。” 为了了解我的情况,这里有一些背景:

我正在为我的工作场所使用 Python 2.7 构建一个桌面应用程序。它是基于 PyQt 构建的基于 GUI 的应用程序。我正在使用Esky构建应用程序,它是一个跨平台的冻结和更新框架。Esky 基本上包装/调用 py2exe、py2app、bb_freeze 或您安装的适合当前平台的任何工具。Esky 创建了一个如下所示的压缩包:

然后可以将这些压缩包放置在 Esky 查找更新的文件服务器上。提供了许多方法来管理更新,包括一个非常简单的 auto_update()。当发生更新时,appname-XYplatform 文件夹本质上会被下一个版本文件夹替换……所以 myApp.0.1.win32 文件夹被替换为 myApp.0.2.win32 文件夹。

您应该知道的背景的另一个方面是我正在将应用程序分发给我的同事,他们没有安装 Python。我不是在分发 Python 包或库,而是在部署一个桌面应用程序(我的同事并不特别关心它是用什么写的,只是它可以工作)。我已经构建了一个 Inno 安装程序,它可以安装应用程序、提供卸载程序和各种快捷方式。因为团队中的每个人基本上都拥有相同的 Windows 7 64 位环境,所以我只为那个平台构建是相当安全的。

所以,回到结构问题。我已经阅读了为项目框架推荐某种格式的指南,例如Learn Python the Hard Way、Exercise 46Hitchhiker's Guide to Packaging。然而,这些指南面向 Python 包开发人员,而不是编译应用程序开发人员。

我也遇到了 Esky 的 appname-XYplatform 文件夹的问题,因为每次更新程序时它都会更改名称(以反映版本号)。因为我希望开始菜单中的一些快捷方式始终引用文档、更改日志等,所以我让安装程序将其中一些文件放在 appdata 文件夹下。当程序更新时,我有一些代码来检查那些我想在外部“可见”的文件的较新版本,并将较新版本从 appname-XYplatform 文件夹中复制出来,并覆盖 appdata 文件夹中的副本。然后我还需要一种存储持久用户设置的方法,因此程序会生成并使用 appdata\settings 文件夹(否则每次更新都会擦除设置)。

我应该继续让应用程序在更新后将新文件推送到 appdata 文件夹吗?我是否应该构建自己的文档、示例、设置等结构,并让程序在必要时用更新的文件填充这些文件夹?我是否应该尝试改变或更好地利用 Esky 的行为以更好地适应我的使用?也许我应该将我的应用程序重新设计为可作为 Python 包和最终用户应用程序进行分发?

这个问题与关于 Esky 的静态文件的问题关于 Python 部署的应用程序结构的问题以及关于 Python 项目结构的许多通用问题有关,这些问题并未专门解决使用 Esky 的问题。一些讨论 Esky 的视频也可以在这里这里找到

我正在寻求有关应对这些挑战的“最佳实践”方法的建议。如果这不符合 StackOverflow 问题格式,我很乐意尝试改写或缩小问题的重点。

0 投票
4 回答
15185 浏览

python - 自动更新使用 pyinstaller 生成的 python 可执行文件

我有一个正在开发的桌面应用程序,我正在使用PyInstaller它来生成 de 分发文件。

我之所以选择它是PyInstaller因为py2exe它非常好用而且我不需要关心 windows dll,但是当我使用时py2exe我可以简单地使用Esky来自动更新,但我不能将它与PyInstaller.

所以我不知道如何启动自动更新应用程序。有人有一些想法或只是知道我该如何使用PyInstaller和 esky?

0 投票
2 回答
1365 浏览

python - 在冻结的应用程序中使用请求时出错

我正在尝试在冻结的应用程序中使用出色的请求库。该代码在解释时工作正常,但是当我生成 dist 可执行文件时它停止工作。

我试过这个解决方案,但它不起作用(请求库:cx_freeze 后丢失文件

我的 setup.py 文件:

追溯:

0 投票
2 回答
1064 浏览

python - 将 Python 脚本转换为可以自动更新的独立单个文件可执行文件?

我为我的办公室用 Python 2.7 编写了一个程序。使用带有 --onefile 标志的 PyInstaller,我已将其编译为单个 EXE 文件以分发给我的同事。我现在想弄清楚的是如何自动提供更新但仍将程序保留为单个文件。

我目前的方法是让程序提醒用户有新版本,并给出获取更新文件的说明。这可行,但我想找到一些无需用户参与的更新方法。

我知道Esky,它可以创建自动更新 Python 程序,但据我所知,它要求程序作为多个文件存在。

关于如何制作可以自动更新的独立单文件 EXE python 程序的任何建议?

0 投票
3 回答
387 浏览

python - 如何使用 py2exe 和 esky 冻结 Celery?

我正在尝试冻结一个 Python 应用程序和 Celery,并与 esky 打包以提供更新功能。我需要将 Celery 冻结,以便它可以看到第一个可执行文件中的模块,该可执行文件也将出现在 py2exe 创建的 library.zip 文件中。

问题是我不能让 Celery 和 esky 一起冷冻。这是我用来尝试找到解决问题的解决方案的最低限度的、精简的 setup.py 文件:

当我运行以下命令时:

我收到以下错误:

机器上没有可以使用 Celery 的正在运行的 Python 进程。我认为这是 py2exe 和 esky 之间的冲突,但不知道如何克服它。

我可以使用 py2exe 冻结 Celery,而无需引用 esky,但我需要能够在将来更新这个项目,所以 esky 支持是必须的。