繁体   English   中英

编译Python项目Windows

[英]Compile a Python project Windows

我的python项目具有以下目录结构:

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

目录:模型,异常,控制器和视图每个都有其__init__.py 当我在机器上运行程序时,我总是使用以下命令: py -m eplusplus 但是,当我尝试使用py2exe或pytinstaller时,指向: permission denied 对于我发现的情况,这是因为它是我尝试编译的目录,但是当我编译__main__.py它通常已编译,但是当我尝试执行时,它说: Error! No eplusplus module founded! Error! No eplusplus module founded!

我没有setup.py文件,也不知道它们是如何工作的。

经过一些非常深入的研究和错误,然后尝试通过以下方式成功完成了工作:

  • 我在eplusplus文件夹中添加了一个空的__init__.py

  • eplusplus文件夹之外,我必须编写一个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,
        }
    }
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM