python - cx-Freeze 无法构建“LookupError:未知编码”
问题描述
我在 Windows 10 64 位上有 Python 3.8。我在安装 cx-Freeze 时遇到了一些麻烦,不得不安装“cx_Freeze-6.0-cp38-cp38-win32.whl”,因为它是唯一一个有效的。
我正在尝试将使用 wxPyhton 生成简单 GUI 的脚本转换为可执行文件。
运行“steup.py build”时出现以下错误
running build
running build_exe
.....
copying C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\VCRUNTIME140.dll -> build\exe.win32-3.8\VCRUNTIME140.dll
Traceback (most recent call last):
File "setup.py", line 21, in <module>
setup(name='editor',
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\cx_Freeze\dist.py", line 348, in setup
distutils.core.setup(**attrs)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\cx_Freeze\dist.py", line 219, in run
freezer.Freeze()
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\cx_Freeze\freezer.py", line 617, in Freeze
self._FreezeExecutable(executable)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\cx_Freeze\freezer.py", line 208, in _FreezeExecutable
self._AddVersionResource(exe)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\cx_Freeze\freezer.py", line 143, in _AddVersionResource
stamp(fileName, versionInfo)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32\lib\win32verstamp.py", line 157, in stamp
vs = VS_VERSION_INFO(vmaj, vmin, vsub, vbuild, sdata, vdata, is_debug, is_dll)
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32\lib\win32verstamp.py", line 103, in VS_VERSION_INFO
result = result + nullterm('VS_VERSION_INFO')
File "C:\Users\ptanas\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32\lib\win32verstamp.py", line 50, in nullterm
return (str(s) + '\0').encode('unicode-internal')
LookupError: unknown encoding: unicode-internal
我不知道为什么会出现这个错误。
设置.py:
import os
import sys
from cx_Freeze import Executable, setup
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(
packages = [],
excludes = [],
include_files=[]
)
base = 'Win32GUI' if sys.platform=='win32' else None
executables = [
Executable('test.py', base=base)
]
setup(name='editor',
version = '1.0',
description = '',
options = dict(build_exe = buildOptions),
executables = executables)
解决方案
已修复:https ://github.com/mhammond/pywin32/commit/74f9d8b8b549ff0d547ff600eaca1f25c79b4432 。
升级pywin32:
pip install -U pywin32
推荐阅读
- javascript - 检测碰撞(视频游戏 js)
- css - CSS `:disable` vs `[disabled]`
- firebase - 无法找到当前位置与目标位置之间的距离
- firebase - 如何从 Firebase 实时数据库中删除 kotlin 数据
- python - 烧瓶页面没有显示它应该显示的内容
- javascript - 无法获取 ID 以关闭 onclick
- java - 安卓谷歌地图圈可点击
- python - 使用 Python 从 .csv 中的 ESPNCricInfo StatsGuru 抓取数据
- javascript - jQuery 3.5.1 callback function in .animate() not working
- php - trim() 期望参数 1 是字符串