2011-09-01 76 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