【问题标题】:Compile a Python project Windows编译 Python 项目 Windows
【发布时间】:2017-06-12 14:11:01
【问题描述】:

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

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 文件,也不知道它们是如何工作的。

【问题讨论】:

  • main.py 中的导入怎么样?
  • 难道仅仅是这两个实用程序不支持拥有__main__.py 和执行目录吗?

标签: python windows compiler-errors exe py2exe


【解决方案1】:

经过一些非常深入的研究和错误并尝试我这样做是成功的:

  • 我在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,
        }
    }
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-11
    • 2020-10-03
    • 2023-02-02
    • 1970-01-01
    • 2015-07-05
    • 2011-10-22
    • 2019-10-17
    • 2012-11-12
    相关资源
    最近更新 更多