py2exe创建的可执行文件无法正常工作

时间:2012-07-03 10:24:40

标签: python installation py2exe

我在wxPython中创建了一个GUI,并使用了numpy和matplotlib。起初,它已经要求MSVCP90.dll。我以某种方式下载它并添加到python DLLs。现在,它为项目生成.exe文件,但它不起作用。它只是打开'cmd'并立即关闭。我怀疑项目目录结构存在一些问题。

- setup.py -

import py2exe, sys, os

setup(scripts=["Source\mainModule.py"],
  packages=[
    "Source",
    "Source.Packages_Needed",
    "Source.Packages_Needed.anomalyChecker",
    "Source.Packages_Needed.config",
    "Source.Packages_Needed.GUI_tools",
    "Source.Packages_Needed.parserTools",
    "Source.Packages_Needed.utilities",
    ],
  package_data={"Source.ltePackages.configuration" : ["*.txt"]},

- setup.py -

- 项目目录结构 -

project/
      setup.py
      Source/
           mainModule.py
           __init__.py
           packages_Needed/
               __init__.py
               anomalyChecker/
                    __init__.py
                    ACModule1.py
                    ACModule2.py
                    ACModule3.py
               config/
                    __init__.py
                    dictionary.txt
                    reference.txt
                    configMod1.py
                    configMod2.py
                    configMod3.py
               GUI_tools/
                    __init__.py
                    analyzerGUI.py
               parserTools/
                    __init__.py
                    parser.py
               utilities/
                    __init__.py
                    plotter.py

- 项目目录结构 -

我正在以下列方式运行python setup.py:

     C:\\Path\\source> python setup.py py2exe

在发出该命令之后,我在dist中找到一个没有运行的.exe文件..它只是打开一个cmd并立即终止。

作为python的新手,我有两个疑问:

我怀疑的第一部分:  为什么.exe文件不起作用?我的setup.py有什么错误。如果是这样,请指出。

我怀疑的第二部分:

现在,我添加了MSVCP90.dll。成功运行.exe之后,如果它运行我的.exe,其他系统是否需要将此dll复制到其python dll中?如果是这样,那将会带来很多不便。建议一种避免它的方法。

提前致谢。

编辑:我正在使用包:matplotlib和numpy。

1 个答案:

答案 0 :(得分:1)

我在pyqt上遇到了同样的问题,通过包含我正在使用的pyqt模块解决了这个问题

setup(windows=[{"script":"myGuy.py",
  data_files = Mydata_files,
  options={"py2exe":{"includes":["sip", "PyQt4.QtCore","PyQt4.QtGui","PyQt4.QtNetwork"],'dist_dir': "myGuiNameDir"

}})

添加options变量并尝试用你正在使用的wxPython模块用[“PyQt4.QtCore”,“PyQt4.QtGui”]替换列表。 如果有效,请告诉我。

另外,如果你厌倦了名为dist的dist目录,你可以使用'dist dir'来改变你的名字