编译一个 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!
我没有 setup.py 文件,我不知道它们是如何工作的。
经过一些非常深入的研究和错误尝试,我通过这样做成功了:
我在 eplusplus
文件夹中添加了一个空的 __init__.py
在 eplusplus
文件夹之外,我不得不写一个 compilation.py
文件(该文件不一定必须有这个)来包含我正在使用的所有库(我将 post 这个答案末尾的文件)
最后,在 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,
}
}
)
我的 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 文件,我不知道它们是如何工作的。
经过一些非常深入的研究和错误尝试,我通过这样做成功了:
我在
eplusplus
文件夹中添加了一个空的__init__.py
在
eplusplus
文件夹之外,我不得不写一个compilation.py
文件(该文件不一定必须有这个)来包含我正在使用的所有库(我将 post 这个答案末尾的文件)最后,在 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,
}
}
)