由 py2exe 创建的可执行文件不起作用



我在wxPython和函数中制作了一个GUI,这些函数使用numpy和matplotlib。起初,它要求MSVCP90.dll。我不知何故下载了它并添加到 python DLL 中。现在,它为项目生成.exe文件,但它不起作用。它只是打开"cmd"并立即关闭。我怀疑项目目录结构存在一些问题。

--

setup.py --

import py2exe, sys, os
setup(scripts=["SourcemainModule.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的新手,我有两个疑问:

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

我的怀疑部分-2:

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

提前谢谢。

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

我在 Pyqt

上的 GUI 遇到了同样的问题,通过包含我像这样使用的 Pyqt 模块解决了

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

})

添加选项变量并尝试将列表替换为 ["PyQt4.QtCore", "PyQt4.QtGui"] 由您正在使用的 wxPython 模块。让我知道它是否有效。

另外,如果您厌倦了名为 dist 的 dist 目录,您可以使用"dist 目录"来更改 hi 名称

最新更新