好的,我正在尝试使用 py2app 为我的项目生成发行版。我仍然不确定我是否掌握了它的窍门。所以我的 setup.py 看起来像这样:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
import setuptools
PACKAGES = ['sqlalchemy.dialects.sqlite']
MODULES = ['sqlite3']
APP = ['tvb/interfaces/web/run.py']
OPTIONS = {'argv_emulation': True,
'packages': PACKAGES ,
'includes' : MODULES }
DATA_FILES = []
setup(
app=APP,
data_files=DATA_FILES,
packages = setuptools.find_packages(),
include_package_data=True,
options={'py2app': OPTIONS},
setup_requires=['py2app', "pyopengl", "cherrypy", "sqlalchemy", "simplejson",
"formencode", "genshi", "quantities","numpy", "scipy",
"numexpr", "nibabel", "cfflib", "mdp", "apscheduler",
"scikits.learn"]
)
Run Code Online (Sandbox Code Playgroud)
所以我的第一个问题是:我应该在 py2app 的模块中包含什么?py2app 是否知道扫描 setup_requires 中的内容并包含它们,或者我是否需要在 MODULES 中为它们添加一些条目?
sqlalchemy.exc.ArgumentError: Could not determine dialect for 'sqlite'另一个问题是我在尝试运行我的应用程序时收到: 。经过大量谷歌搜索后,我只看到对于 py2exe 你需要将其sqlalchemy.dialects.sqlite作为一个包包含在内,但它似乎对我不起作用。我在这里错过了什么吗?
最后一个是我得到一个:malformed object (load command 3 cmdsize not a multiple of 8)就在 之前python setup.py py2app。这是正常的吗?
问候, 博格丹
看来我把整件事都搞错了。
'includes' : ['sqlalchemy.dialects.sqlite']
Run Code Online (Sandbox Code Playgroud)
而不是包裹,这似乎已经成功了。