【问题标题】:py2exe can't find msvcp90.dllpy2exe 找不到 msvcp90.dll
【发布时间】:2013-01-26 17:36:30
【问题描述】:

我正在使用 py2exe 将使用 Python 2.7 和 Pyqt4 编写的简单 GUI 脚本转换为独立的可执行文件。我不断收到“不存在这样的文件”错误,我已经设法修复了一些错误,尽管这个似乎很顽固。它找不到 msvcp90.dll,并返回一条错误消息,其中包含对 distutils 的简短回溯,然后返回到我的 py2exe 脚本,这不是很有启发性。 我已经按照

中的建议安装了 MS C++ 可再发行运行时

py2exe fails to generate an executable

但我的脚本仍然找不到 .dll。下面是我的 py2exe 脚本,我的脚本名称被屏蔽了:

from distutils.core import setup
from py2exe.build_exe import py2exe
import sys, os, zmq

sys.argv.append('py2exe')

os.environ["PATH"] = \
os.environ["PATH"] + \
os.path.pathsep + os.path.split(zmq.__file__)[0]

setup(
    options = {'py2exe':{'bundle_files':1,"includes":["zmq.utils", 
            "zmq.utils.jsonapi","zmq.utils.strtypes"]}},
    console = [{'script':"#######.py"}],
    zipfile = None
)

我已经解决了 zmq 的一个问题(据我所知,我的脚本或 GUI 从未使用过它)。我究竟做错了什么?

【问题讨论】:

  • 我认为包含 zmq 的原因是由于 "includes":["zmq. 的东西(也可能是 import sys, os, zmq 节)。

标签: python-2.7 py2exe


【解决方案1】:

好吧,我已经设法构建了我的应用程序,虽然这个问题现在已经有点老了,但我希望这最终对某人有用。

首先, py2exe 可能是错误的工具。它很旧而且 AFAICT 无人维护。请考虑使用 PyInstaller。使用 PyInstaller 就像安装它、安装 PyWin32,然后转到 python %path_to_pyinstaller%/pyinstaller.py --onefile --windowed source.py 一样简单。 PyInstaller 可以处理所有杂乱无章的并行程序集等等,而无需您做任何事情。

简而言之,使用 PyInstaller。

但是,回答你的问题,这对我有用:

  1. 您链接到的问题 - 特别是this answer 是正确的开始。找到正确的 DLL 并将它们复制到 C:\Python27\DLLs
  2. 放弃现有的setup.py 文件。如果您不使用zmq,则没有理由导入它。此外,对于窗口应用程序,您需要windows= 而不是console=。我的文件去(用于打包show.py):

    #!/usr/bin/python
    
    from distutils.core import setup
    import py2exe
    
    setup(options={'py2exe':{'bundle_files':1}},
          windows=['show.py'])
    

    (这被掐断了http://www.blog.pythonlibrary.org/2010/07/31/a-py2exe-tutorial-build-a-binary-series/

【讨论】:

猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多