1

我在 wxPython 和使用 numpy 和 matplotlib 的函数中制作了一个 GUI。起初,它要求提供 MSVCP90.dll。我以某种方式下载了它并添加到 python DLL 中。现在,它会为项目生成 .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的新手,我有两个疑问:

我的疑问的第 1 部分:为什么 .exe 文件不起作用?我的 setup.py 中是否有任何错误。如果有,请指出。

我怀疑的第-2部分:

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

提前致谢。

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

4

1 回答 1

1

我在 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"

}})

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

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

于 2012-07-13T08:34:42.270 回答