2017-06-12 137 views
0

我有以下目錄結構來我的Python項目:編譯Python項目的Windows

eplusplus/ 
    | 
    | 
    ----__main__.py 
    ----model/ 
    ----exception/ 
    ----controller/ 
    ----view/ 

的目錄:模型,異常,控制器和視圖,每一個都有其 __init__.py。當我在我的機器上運行程序時,我總是使用以下命令:py -m eplusplus。但是,當我試圖使用py2exe或pytinstaller的點:permission denied。我發現,這是因爲它的目錄我試圖編譯,但是當我編譯__main__.py編譯通常,但是當我嘗試執行它說:Error! No eplusplus module founded!

我沒有setup.py文件,我不不知道他們是如何工作的。

+0

怎麼樣在__main__.py進口? – biniow

+0

難道這只是這兩個實用程序不支持'__main __。py'並執行目錄嗎? – martineau

回答

0

經過一番非常深入的研究和錯誤,並嘗試我成功做這個:

  • 我在eplusplus文件夾

  • 走出eplusplus文件夾中添加一個空__init__.py,我不得不寫一個compilation.py文件(這個文件不一定必須有這個)包含我正在使用的所有庫(我將在此答案的末尾發佈文件)

  • 最後,在PowerShell中,我必須鍵入是py compilation.py py2exe

感謝所有那些試圖幫助我!

compilation.py文件:

#To compile we need to run: python compilation.py py2exe 
from distutils.core import setup 
from glob import glob 
import os 
import py2exe 
import pyDOE 

VERSION=1.0 

includes = [ 
    "sip", 
    "PyQt5", 
    "PyQt5.QtCore", 
    "PyQt5.QtGui", 
    "PyQt5.QtWidgets", 
    "scipy.linalg.cython_blas", 
    "scipy.linalg.cython_lapack", 
    "pyDOE" 
] 

platforms = ["C:\\Python34\\Lib\\site-packages\\PyQt5\\plugins" + 
      "\\platforms\\qwindows.dll"] 

dll = ["C:\\windows\\syswow64\\MSVCP100.dll", 
     "C:\\windows\\syswow64\\MSVCR100.dll"] 

media = ["C:\\Users\\GUSTAVO\\EPlusPlus\\media\\title.png", 
     "C:\\Users\\GUSTAVO\\EPlusPlus\\media\\icon.png"] 

documents = ["C:\\Users\\GUSTAVO\\EPlusPlus\\docs\\"+ 
      "documentacaoEPlusPlus.pdf"] 

examples = ["C:\\Users\\GUSTAVO\\EPlusPlus\\files\\"+ 
      "\\examples\\baseline2A.idf", 
      "C:\\Users\\GUSTAVO\\EPlusPlus\\files\\"+ 
      "\\examples\\vectors.csv", 
      "C:\\Users\\GUSTAVO\\EPlusPlus\\files\\"+ 
      "\\examples\\BRA_SC_Florianopolis.838970_INMET.epw"] 

datafiles = [("platforms", platforms), 
     ("", dll), 
     ("media", media), 
     ("docs", documents), 
     ("Examples", examples)] 

imageformats = glob("C:\\Python34\\Lib\\site-packages\\PyQt5\\"+ 
     "plugins\\imageformats\\*") 

datafiles.append(("imageformats", imageformats)) 

setup(
    name="eplusplus", 
    version=VERSION, 
    packages=["eplusplus"], 
    url="", 
    license="", 
    windows=[{"script": "eplusplus/__main__.py"}], 
    scripts=[], 
    data_files = datafiles, 
    options={ 
     "py2exe": { 
      "includes": includes, 
     } 
    } 
)