【发布时间】:2013-10-17 08:02:47
【问题描述】:
我正在尝试将简单的 Python 脚本转换为 Windows 可执行文件。我的 setup.py 脚本是:
from distutils.core import setup
import py2exe
setup(
name = "Simple Script",
options = {
"py2exe": {
"dll_excludes" : ["libmmd.dll","libifcoremd.dll","libiomp5md.dll","libzmq.dll"]
}
},
console=['simple_script.py']
)
我添加了 dll_excludes,因为它们中的每一个都导致了失败。现在我遇到了一个我不能简单排除的失败。这是错误跟踪:
Traceback (most recent call last):
File "setup.py", line 12, in <module>
console=['rules signed.py']
File "C:\Anaconda\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Anaconda\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Anaconda\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 243, in run
self._run()
File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 306, in _run
self.plat_finalize(mf.modules, py_files, extensions, dlls)
File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 1157, in plat_finalize
import pythoncom
File "C:\Anaconda\lib\site-packages\pythoncom.py", line 2, in <module>
import pywintypes
File "C:\Anaconda\lib\site-packages\win32\lib\pywintypes.py", line 124, in <module>
__import_pywin32_system_module__("pywintypes", globals())
File "C:\Anaconda\lib\site-packages\win32\lib\pywintypes.py", line 98, in __import_pywin32_system_module__
raise ImportError("No system module '%s' (%s)" % (modname, filename))
ImportError: No system module 'pywintypes' (pywintypes27.dll)
我已经安装了 pywin32 并尝试在我的设置选项中排除“pywintypes27.dll”、“pywintypes”、“pywin”、“pywin.debugger”,但没有成功。还尝试应用我在 SO 上找到的所有其他解决方案,例如将“pythoncom27.dll”、“pythoncomloader27.dll”和“pywintypes27.dll”移动到顶级目录。
没有什么能消除“ImportError: No system module 'pywintypes' (pywintypes27.dll)”问题
【问题讨论】:
-
在尝试使用 pywin32 时出现同样的问题。也许它与 anaconda 相关,所以我添加了这个标签。也许 anaconda 邮件列表是一个更好的地方来询问这个问题(不幸的是,他们不使用 stackoverflow 或 gihub 的问题跟踪器来解决此类问题/错误)。
-
对我来说适用于 Anaconda-1.7.0-Windows-x86_64.exe 和 py2exe-0.6.10dev.win-amd64-py2.7.exe。
-
尝试切换到 PyInstaller。太棒了。
标签: python windows py2exe pywin32 anaconda