2012-07-03 34 views
1

我已經在wxPython中使用numpy和matplotlib實現了一個GUI。起初,它已經要求MSVCP90.dll。我以某種方式下載它並添加到python DLL中。現在,它生成該項目的.exe文件,但它不起作用。它只是打開'cmd'並立即關閉。我懷疑項目目錄結構存在一些問題。由py2exe創建的可執行文件不工作

- 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 

- 工程目錄結構 -

我正在以下列方式蟒蛇setup.py:

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

給予該命令後,我在沒有運行DIST得到一個.exe文件..它只是打開一個cmd和立即終止。

作爲一個新手到Python,我有兩個疑惑:

部分 - 1我的疑問:爲什麼 不工作的.exe文件?我的setup.py中有任何錯誤。如果是這樣,請指出。

我懷疑的部分-2:

現在,我添加了MSVCP90.dll。成功運行.exe後,其他系統是否需要將此dll複製到它的python dll中(如果它運行我的.exe)?如果是這樣,那會帶來很多不便。建議一種方法來避免它。

在此先感謝。

編輯:我正在使用包:matplotlib和numpy。

+3

運行'從命令提示符.exe',看看是否有報告了任何錯誤。 –

+1

請參考SO問題[創建沒有MSVCP90.dll的Python EXE](http://stackoverflow.com/questions/10060765/create-python-exe-without-msvcp90-dll/10060842#10060842) – Abhijit

+0

嗯......謝謝指出它。 錯誤: 回溯(最近通話最後一個): 文件 「mainModule.py」,3號線,在 導入錯誤:名爲packages_Needed.GUI_tools無模塊。analyzerGUI – VoodooChild92

回答

1

我有蒙山我的PyQt的圖形用戶界面同樣的問題,它是由包括我使用這樣

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

}})

添加的選項變量,並嘗試PyQt的模塊解決用你使用的wxPython模塊替換列表[「PyQt4.QtCore」,「PyQt4.QtGui」]。 讓我知道它是否工作。

另外,如果妳累了名爲DIST dist目錄中,U可以使用「DIST目錄」變更喜名