py2app无法加载扩展
问题描述:
当构建使用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来欺骗它,然后将其交换出来,但我确信有更好的方法,我不相信甚至可以工作
答
我在一段时间后解决了这个问题。
该错误是由在同一构建脚本中多次调用设置引起的,以及构建之间的状态泄漏造成的。
的解决方案是通过设置py2app选项bdist_base
和dist_dir
OPTIONS = {
...
"bdist_base": os.path.join("build",APP_NAME),
"dist_dir": os.path.join("dist",APP_NAME)
}
setup(
...
options={"py2app": OPTIONS}
...
)
构建每个应用到不同的目录