2011-09-01 49 views
3

好的,所以我想用py2app为我的项目生成一个分布。我仍然不确定我是否得到了它的窍门。所以,我的setup.py看起来是这样的: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"] 
) 

所以我的第一个问题是:我应该包括我的模块对于py2app这里? py2app知道扫描setup_requires中的东西并包含它们,还是我需要在模块中为它们添加一些条目?

另一个问题是,我在尝试运行我的应用时遇到了:sqlalchemy.exc.ArgumentError: Could not determine dialect for 'sqlite'。大量的谷歌搜索后,我只看到,py2exe你需要包括sqlalchemy.dialects.sqlite作为一个包,但它似乎并没有为我工作。我在这里错过了什么吗?

最后一个是我在python setup.py py2app之前得到了一个:malformed object (load command 3 cmdsize not a multiple of 8)。这是正常的吗?

问候, 波格丹

回答

3

嗯,看来我得到了整个事情是错误的。

'includes' : ['sqlalchemy.dialects.sqlite'] 

而不是软件包,这似乎已经成功了。

+0

你能发布你的最终setup.py吗?我使用的SQLAlchemy是一样的,但与MySQL和我还没有弄清楚究竟是去哪里解决方言错误。 – Cryptite