更改 Python cx_Freeze 项目中的文件夹结构
Change folder structure in Python cx_Freeze project
我制作了一个 Python 应用程序,我想构建 exe 文件以简化 Windows 用户之间的共享。我用过:
- Python 3.6.1
- cx_Freeze 模块 5.0.2
得到一个exe文件,但是最后的结构让我哭笑不得:
- 可执行文件
- zip 压缩包 Python 3.6
- 3 个 dll(python、sqlite、vcruntime)
- 21 个文件夹
- 10 个 pyd 文件
在我看来,这对用户来说不方便,我想将文件夹和 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?
我的问题在5.1版本已经差不多解决了。构建目录中只有 5 个项目:
- lib文件夹
- exe文件
- 3 个 dll(python36、sqlite、vcruntime)
对我来说没问题,但 exe 文件不起作用。出现错误 ModuleNotFoundError: no module named 'codecs'
。
答案已找到here。当前版本(目前是5.1)有错误,但是补丁已经打好了。不幸的是,新版本 (5.1.1) 不在 PyPI 中。
尽管如此,解决方案非常简单:从源代码构建 cx_Freeze
。提到here。 (需要Visual Studio,我用的是2013年的一个)。或者你可以等一会儿,我希望新版本很快就会出现在 PyPI 中。
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 安装脚本之后的安装程序生成脚本.
我制作了一个 Python 应用程序,我想构建 exe 文件以简化 Windows 用户之间的共享。我用过:
- Python 3.6.1
- cx_Freeze 模块 5.0.2
得到一个exe文件,但是最后的结构让我哭笑不得:
- 可执行文件
- zip 压缩包 Python 3.6
- 3 个 dll(python、sqlite、vcruntime)
- 21 个文件夹
- 10 个 pyd 文件
在我看来,这对用户来说不方便,我想将文件夹和 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?
我的问题在5.1版本已经差不多解决了。构建目录中只有 5 个项目:
- lib文件夹
- exe文件
- 3 个 dll(python36、sqlite、vcruntime)
对我来说没问题,但 exe 文件不起作用。出现错误 ModuleNotFoundError: no module named 'codecs'
。
答案已找到here。当前版本(目前是5.1)有错误,但是补丁已经打好了。不幸的是,新版本 (5.1.1) 不在 PyPI 中。
尽管如此,解决方案非常简单:从源代码构建 cx_Freeze
。提到here。 (需要Visual Studio,我用的是2013年的一个)。或者你可以等一会儿,我希望新版本很快就会出现在 PyPI 中。
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 安装脚本之后的安装程序生成脚本.