了解已知错误的修复:cx_Freeze和Python 3.7

问题描述 投票:1回答:1

我一直在尝试基于python 3脚本(版本3.7)为Mac OSX创建一个独立的GUI应用程序。直接从终端启动时,.py脚本可以正常工作。然而,这对于我的父亲在下载.jpg时需要帮助,所以他需要一个简单的双击应用程序。

不幸的是,我尝试使用的所有工具似乎都知道我正在使用的模块(py2App = openpyxl / pyinstaller = tkinter)。我现在尝试使用的是cx_Freeze。

然而,Python 3.7中再次出现了一个已知错误

我一直在尝试在我的Mac OSX机器上修复此问题,但无法找到被引用的文件(在this GIT-hub上,上面第一篇文章链接的代码)。

我想修复这个错误,但我也想了解为什么会发生这种情况以增加我对python和创建独立应用程序的知识。

不幸的是,我不太了解如何通过阅读GIT-hub帖子(因为它们是针对Windows系统并且我找不到文件)来解决它,也不知道为什么会出现这个错误。

在此先感谢您的帮助。

对于info,这是启动创建的可执行文件时终端输出的副本:

/Users/USER_NAME/Desktop/Python/DAD_PROJECT/build/exe.macosx-10.9-x86_64-3.7/PROJECT_NAME ; exit;
MacBook-Pro-de-USER_NAME:~ USER_NAME$ /Users/USER_NAME/Desktop/Python/DAD_PROJECT/build/exe.macosx-10.9-x86_64-3.7/PROJECT_NAME ; exit;
Fatal Python error: initfsencoding: unable to load the file system codec
ImportError: invalid flags 1545637508 in 'encodings'

Current thread 0x00007fff98191380 (most recent call first):
Abort trap: 6
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Opération terminée]

编辑和测量,我的setup.py文件:

请注意,这是在我的Mac上使用cx_freeze-quickstart自动生成的,如qazxsw poi所建议的那样

cx-freeze.readthedocs
python python-3.x cx-freeze python-standalone
1个回答
1
投票

要查找需要修改的from cx_Freeze import setup, Executable # Dependencies are automatically detected, but it might need # fine tuning. buildOptions = dict(packages = [], excludes = []) import sys base = 'Win32GUI' if sys.platform=='win32' else None executables = [ Executable('PROJECT_NAME.py', base=base, targetName = 'PROJECT_NAME') ] setup(name='PROJECT_NAME', version = 'DAD_PROJECT', description = 'Project for my dad', options = dict(build_exe = buildOptions), executables = executables) 文件的路径,请在Python控制台中运行以下命令:

freezer.py

然后根据from cx_Freeze import freezer print(freezer.__file__) 存储库的this commit修改此文件,这意味着删除用cx_Freeze注释的红线并添加用-注释的绿线。

© www.soinside.com 2019 - 2024. All rights reserved.