Kar*_*rra 5 python windows py2exe pyinstaller
我写了一个简单的Web应用程序,内嵌Web服务器(龙卷风),数据库(sqlalchemy现在使用sqlite),以及整个shabang.我想将它全部捆绑到一个包含可以运行的单个exe的自包含目录中.部署方案绝对需要单击安装并像这样运行.
我完全没有尝试让py2exe或pyinstaller捆绑我的代码.问题与目录结构和布局直接相关,如下所示.我不想更改目录布局.有人可以建议我如何使用py2exe或pyinstaller或任何其他合适的工具?
project/
|-> main.py
|-> libs/
|-> tornado/ (The full git rep as a submodule)
|-> tornado/ (The actual package)
|-> sqlalchemy/
|-> src/
|-> support-1.py
|-> support-2.py
|-> static/
-> js/
-> img/
-> css/
|-> templates/
Run Code Online (Sandbox Code Playgroud)
好吧,很抱歉回答我自己的问题.但是谷歌搜索和反复试验,我设法让这个工作.我正在粘贴我的setup.py(对于py2exe)下面的任何有类似问题的人正在使用py2exe进行龙卷风+ sqlalchemy + sqlite.当我运行python setup.py py2exe时,最后一行提到某些模块缺失.但这对程序的执行没有影响.
> "['Carbon', 'Carbon.Files', '_curses', '_scproxy', 'django.utils',
> 'dummy.Process', 'pkg_resources', 'pysqlite2', 'simplejson',
> 'sqlalchemy.cprocessors', 'sqlalchemy.cresultproxy', 'tornado.epoll']"
Run Code Online (Sandbox Code Playgroud)
这是我的setup.py:
import glob, os, sys
curr_dir = os.path.abspath('.')
pare_dir = os.path.abspath('..')
sys.path = [os.path.join(pare_dir, 'py2exe-0.6.9', 'py2exe'),
os.path.join(curr_dir, 'src'),
os.path.join(curr_dir, 'libs', 'tornado'),
os.path.join(curr_dir, 'libs', 'sqlalchemy'),
os.path.join(curr_dir, 'libs')] + sys.path
from distutils.core import setup
import py2exe
data_files = [('', ['config.json']),
('db', ['db/prs.db']),
('templates', glob.glob('templates/*.*')),
('static', glob.glob('static/*.* ')),
('static/css', glob.glob('static/css/*.*')),
('static/js', glob.glob('static/js/*.*')),
('static/js/libs', glob.glob('static/js/libs/*.*')),
('static/img', glob.glob('static/img/*.*')),
]
setup(console=['prs.py'], options={
'py2exe' : {
'includes' : ['demjson'],
'packages' : ['sqlalchemy.dialects.sqlite'],
}},
data_files=data_files,
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |