2012-09-06 127 views
0

当构建使用SQLAlchemy的一个应用程序,我得到这个错误:py2app无法加载扩展

creating python loader for extension 'sqlalchemy.cprocessors' 
error: /Users/paul/Source/Python/build/bdist.macosx-10.6-intel/python2.7-standalone/app/temp/sqlalchemy/cprocessors.py: No such file or directory 

我把在现场的包一看,没有cprocessors.py,但cprocessors.so - 所以也许它只是寻找错误的扩展

我试着将"sqlalchemy.cprocessors"添加到py2app的包含列表,但没有帮助。

我想知道是否可以通过在构建它时删除空的cprocessors.py来欺骗它,然后将其交换出来,但我确信有更好的方法,我不相信甚至可以工作

回答

0

我在一段时间后解决了这个问题。

该错误是由在同一构建脚本中多次调用设置引起的,以及构建之间的状态泄漏造成的。

的解决方案是通过设置py2app选项bdist_basedist_dir

OPTIONS = { 
    ... 
    "bdist_base": os.path.join("build",APP_NAME), 
    "dist_dir": os.path.join("dist",APP_NAME) 
} 

setup(
    ... 
    options={"py2app": OPTIONS} 
    ... 
) 
构建每个应用到不同的目录