【发布时间】:2014-03-10 12:01:19
【问题描述】:
我使用 cx_freeze 冻结我的 myScript.py 脚本,它在我的英文版 win7 x64 上运行良好,但在 cx_freeze 之后,在中文版 win7 x64 上,它显示以下错误消息。我在一个干净安装的英文 win7 x64 在一个 vm 上运行了相同的冻结代码,没有发生错误。
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
File "myScript.py", line 2, in <module>
File "myScript.pyx", line 62, in init myScript (myScript.c:23212)
File "C:\Python27\lib\site-packages\winappdbg\__init__.py", line 234, in <module>
File "C:\Python27\lib\site-packages\winappdbg\breakpoint.py", line 66, in <module>
File "C:\Python27\lib\site-packages\winappdbg\process.py", line 58, in <module>
File "C:\Python27\lib\site-packages\winappdbg\disasm.py", line 631, in <module>
File "C:\Python27\lib\site-packages\winappdbg\disasm.py", line 651, in Disassembler
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
然后我在winappdbg代码中检查了文件disasm.py,在那一行,代码是
# Add the list of supported disassemblers to the docstring.
__doc__ += "\n"
for e in engines:
__doc__ += " - %s - %s (U{%s})\n" % (e.name, e.desc, e.url)
del e
我想如果我更改这行代码,并重新 cx_freeze 我的代码,错误可能会消失。
但是为什么__doc__ 在这里没有?它不是包的文档字符串,而且总是有一些东西吗?
【问题讨论】:
-
使用优化标志字节编译的 Python 代码去除了文档字符串。但我不确定冻结的 exe 在两台计算机之间移动会如何改变。
标签: python pywin32 cx-freeze docstring