为什么剂量 cx_freeze 抛出像 'MSIError' 这样的异常
Why dose cx_freeze throw the exception like 'MSIError'
我遇到了将 .py 转换为 .exe 的问题。当我尝试使用 cx_freeze 打包时,我总是会得到 'MSIError',它是这样的:
Traceback (most recent call last):
File "setup.py", line 15, in <module>
setup(name="NumberCounter",version="1.0",description="无",options={"build_exe":build_options},executables=executables)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\windist.py", line 392, in run
self.add_files()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\windist.py", line 133, in add_files
cab.commit(db)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\msilib\__init__.py", line 220, in commit
add_stream(db, self.name, filename)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\msilib\__init__.py", line 129, in add_stream
r.SetStream(1, path)
_msi.MSIError: 1: 1101 2: C:\Users\apple1\AppData\Local\Temp\tmp5kgryuh8 3: 2
我该如何解决,为什么会这样?
我会为您解压错误行。
_msi.MSIError: 1: 1101 2: C:\Users\apple1\AppData\Local\Temp\tmp5kgryuh8 3: 2
根据 Windows Installer Error Messages,1101 表示 Could not open file stream: [2]. System error: [3]
。
根据命令net helpmsg 2
,系统错误 2 为 The system cannot find the file specified
。
该路径似乎是一个应该创建的临时文件,但根据错误,它可能不是。您可以尝试使用 Process Monitor 之类的工具来确定临时文件是否有任何问题。
我不知道 cx_freeze 有什么用处,但我知道 Windows 安装程序对 Unicode 的支持有点令人惊讶;它很容易半生不熟。因此,我会担心您的 description="无"
,并考虑将其设置为一个简单的纯 ASCII 字符串,看看它是否有帮助。
我遇到了将 .py 转换为 .exe 的问题。当我尝试使用 cx_freeze 打包时,我总是会得到 'MSIError',它是这样的:
Traceback (most recent call last):
File "setup.py", line 15, in <module>
setup(name="NumberCounter",version="1.0",description="无",options={"build_exe":build_options},executables=executables)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\windist.py", line 392, in run
self.add_files()
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\windist.py", line 133, in add_files
cab.commit(db)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\msilib\__init__.py", line 220, in commit
add_stream(db, self.name, filename)
File "C:\Users\apple1\AppData\Local\Programs\Python\Python35\lib\msilib\__init__.py", line 129, in add_stream
r.SetStream(1, path)
_msi.MSIError: 1: 1101 2: C:\Users\apple1\AppData\Local\Temp\tmp5kgryuh8 3: 2
我该如何解决,为什么会这样?
我会为您解压错误行。
_msi.MSIError: 1: 1101 2: C:\Users\apple1\AppData\Local\Temp\tmp5kgryuh8 3: 2
根据 Windows Installer Error Messages,1101 表示
Could not open file stream: [2]. System error: [3]
。根据命令
net helpmsg 2
,系统错误 2 为The system cannot find the file specified
。
该路径似乎是一个应该创建的临时文件,但根据错误,它可能不是。您可以尝试使用 Process Monitor 之类的工具来确定临时文件是否有任何问题。
我不知道 cx_freeze 有什么用处,但我知道 Windows 安装程序对 Unicode 的支持有点令人惊讶;它很容易半生不熟。因此,我会担心您的 description="无"
,并考虑将其设置为一个简单的纯 ASCII 字符串,看看它是否有帮助。