cx_Freeze可执行文件失败,不确定如何集成修补程序吗?

时间:2019-05-08 18:00:59

标签: python user-interface scripting cx-freeze

我终于有了一段写成似乎有点可执行的样式的代码。我在执行时遇到错误:

 Fatal Python error: initfsencoding: unable to load the file system codec
 ImportError: invalid flags 1540019631 in 'encodings'

 Current thread 0x00007fff77a44000 (most recent call first):
 Abort trap: 6

我尝试使用cx_Freeze将脚本转换为可执行文件。 cx_Freeze似乎可以正常工作,并且我在正确的文件夹中找到了一个文件。

但是,在尝试执行它时,出现了以上错误。我在这里找到了解决方法:

https://github.com/msys2/MINGW-packages/commit/4c18633ba2331d980f00aff075f17135399c43c5#diff-ae075c6e3ef8ca1f65e55241d3683992

找到了

 freezer.py

文件。但是,我是从一开始就将代码中的代码直接添加到此文件中还是在寻找要插入的特定序列?当我将它放在freezer.py文件的开头时,出现了一系列与freezer.py文件有关的错误,这些错误现在阻止了转换为可执行文件。

我感谢大家提供的任何帮助,对于这个非常la脚的问题,我们深表歉意!

基本上我插入了

cx_Freeze-5.1.1/cx_Freeze/freezer.py    2018-08-05 17:53:44.557771000 +0300
@@ -550,13 +550,18 @@
# the file is up to date so we can safely set this value to zero
if module.code is not None:
    if module.file is not None and os.path.exists(module.file):
        stat = os.stat(module.file)
        mtime = stat.st_mtime
        size = stat.st_size & 0xFFFFFFFF
    else:
        mtime = time.time()
        size = 0
    if sys.version_info[:2] < (3, 3):
         header = magic + struct.pack("<i", int(mtime))
    elif sys.version_info[:2] < (3, 7):
        header = magic + struct.pack("<ii", int(mtime), 0)
    else:
         header = magic + struct.pack("<iii", 0, int(mtime), size)
    data = header + marshal.dumps(module.code)

紧接着在freezer.py中导入cx_Freeze

我期望成功转换并生成可执行文件,但出现以下错误:

Fatal Python error: initfsencoding: unable to load the file system codec
ImportError: invalid flags 1540019631 in 'encodings'

Current thread 0x00007fff77a44000 (most recent call first):
Abort trap: 6

尝试集成此修复程序后,在发生任何转换之前,我收到以下错误:

Traceback (most recent call last):
  File "setup.py", line 2, in <module>
    from cx_Freeze import setup, Executable
  File "/Users/ashley/Library/Python/3.7/lib/python/site-packages/cx_Freeze/__init__.py", line 11, in <module>
    from cx_Freeze.freezer import *
  File "/Users/ashley/Library/Python/3.7/lib/python/site-packages/cx_Freeze/freezer.py", line 22
    cx_Freeze-5.1.1/cx_Freeze/freezer.py    2018-08-05 17:53:44.557771000 +0300
                  ^
SyntaxError: invalid syntax

不确定如何正确整合此修复程序:(

0 个答案:

没有答案