如何在 windows 和 python 3.4 上使用 esky?

How to use esky on windows with python 3.4?

我正在尝试使用 esky 打包自动更新 python 3 应用程序,但无法在 windows.

上运行

我正在尝试使教程中最简单的示例起作用。 https://github.com/cloudmatrix/esky/tree/master/tutorial/stage1

我的环境:

Z:\share_space\esky-master\tutorial\stage1>python --version
Python 3.4.3

Z:\share_space\esky-master\tutorial\stage1>pip freeze
...
cx-Freeze==4.3.4
esky==0.9.8
py2exe==0.9.2.2
...

当 运行 使用 py2exe 作为冻结器时,由于某些原因它无法找到 py2exe 模块(尽管使用 "python setup.py py2exe" 冻结其他应用程序工作正常)。

Z:\share_space\esky-master\tutorial\stage1>python setup.py bdist_esky
running bdist_esky
Traceback (most recent call last):
  File "setup.py", line 17, in <module>
    "freezer_module":"py2exe",
  File "C:\Python34\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Python34\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\Python34\lib\distutils\dist.py", line 973, in run_command
    cmd_obj.ensure_finalized()
  File "C:\Python34\lib\distutils\cmd.py", line 107, in ensure_finalized
    self.finalize_options()
  File "C:\Python34\lib\site-packages\esky\bdist_esky\__init__.py", line 291, in
 finalize_options
    raise RuntimeError(err)
RuntimeError: freezer module not found: 'py2exe'

使用 cx-Freeze 构建包运行良好,但 运行编译可执行文件失败。

Z:\share_space\esky-master\tutorial\stage1>dist\example-app-0.1.win32\example.ex
e
ValueError: bad marshal data (unknown type code)
Fatal Python error: unable to locate initialization module

Current thread 0x00001254 (most recent call first):

为了得到一个可用的 windows 构建,您需要以下内容:

  • 来自 github 的最新 esky 版本(不是 pypi)。
  • 为了避免 esky 错误,请确保 pip freeze 列出的依赖项的字符大小写正确,如果不正确则重新安装。
  • 我可以确认使用 cx-Freeze 有效(py2exe 尚未测试)。

请参阅 this github issue 了解问题是如何解决的。