我在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。
答案 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'来改变你的名字