py2exe - 没有系统模块'pywintypes'

seb*_*ebo 11 python windows pywin32 py2exe anaconda

我正在尝试将简单的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']
)
Run Code Online (Sandbox Code Playgroud)

我添加了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)
Run Code Online (Sandbox Code Playgroud)

我已经安装了pywin32并尝试在我的设置选项中排除"pywintypes27.dll","pywintypes","pywin","pywin.debugger",但没有成功.还尝试应用我在SO上找到的所有其他解决方案,例如将"pythoncom27.dll","pythoncomloader27.dll"和"pywintypes27.dll"移动到顶级目录.

没有什么能消除"ImportError:No system module'pywintypes'(pywintypes27.dll)"的问题

Tom*_*mpa 20

我最近安装了Anaconda,部分原因是因为我需要win32com软件包,并且不想排除dll文件.但是,对我来说同样的问题.

解决方法是复制DLL文件:
pywintypes27.dll
pythoncom27.dll
坐在:
C:\ Anaconda\Lib\site-packages\win32

C:\ Anaconda\Lib\site-packages\win32\lib

因为查找这些文件的函数看起来不在上面的目录中.源文件pywintypes.py中的大量注释显示存在此问题,可能是由于安装过程不同.我在这里发布了一个关于Anaconda问题跟踪器的问题.


Erx*_*xin 1

这是我日常使用的将控制台 python 应用程序打包为 exe 的代码片段。效果很好。

from distutils.core import setup
import py2exe
from glob import glob

data_files = [("Microsoft.VC90.CRT",
              glob(r'C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*')), 
             ... other required files]
py2exe_options={"py2exe":{"includes":[some_thing_need_to_included], 
                          "dll_excludes":[some_thing_need_to_exclude]}}
setup(data_files=data_files, 
      options=py2exe_options,
      console=['aim_python_script.py'])
Run Code Online (Sandbox Code Playgroud)

您应该检查“simple_script.py”的内容。它是否引用了一些特殊的第三方库?