2012-09-06 159 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} 
    ... 
) 
構建每個應用到不同的目錄