我制作了一个Python应用程序,我想构建exe文件以简化Windows用户之间的共享。我用过:
我有一个exe文件,但最终的结构让我哭了:
在我看来,它不方便用户,我想将文件夹和pyd文件移动到单独的文件夹或存档(这会更好)。有人知道这样做吗?当前build.py
:
from cx_Freeze import setup, Executable
setup(
name = 'myapp',
version = '0.1',
executables = [Executable(
script='__main__.py',
targetName='myapp.exe',
icon='myapp.ico'
)]
)
我应该在setup
功能中添加哪些选项?在当前版本的Python和cx_Freeze中可以做到吗?或者我应该像this那样修补cx_Freeze吗?
答案 0 :(得分:0)
我的问题在5.1版本中几乎已经解决了。构建目录中只有5个项目:
对我来说没关系,但是exe文件没有用。发生错误ModuleNotFoundError: no module named 'codecs'
。
已找到答案here。当前版本中存在错误(目前为5.1),但补丁已经完成。不幸的是,新版本(5.1.1)不在PyPI中。
然而,解决方案非常简单:从源代码构建cx_Freeze
。提到here。 (需要Visual Studio,我使用2013年)。或者你可以等待一段时间,我希望很快就能在PyPI中使用新版本。
答案 1 :(得分:0)
cx_Freeze 5.1.1在PyPI中,请参见https://pypi.org/project/cx_Freeze/#history;还有cx_Freeze 6.0b1和预发行版。
为简化Windows用户之间的共享,您可以让cx_Freeze通过运行以下安装脚本来构建简单的安装程序:
python build.py bdist_msi
请参见http://cx-freeze.readthedocs.io/en/latest/distutils.html#distutils-setup-script
或者,为了制作更可自定义的安装程序,可以使用基于脚本的工具,例如NSIS (Nullsoft Scriptable Install System),并在cx_Freeze设置脚本之后运行生成安装程序的脚本。