我已經在我的計算機上測試並完美運行了Python中的應用程序(Mac OSX 10.8.3 Python2.7.3 Postgresql9.2.4 Psycopg2-2.5)。該應用程序使用py2app編譯,我可以看到,構建成功地將所有包/模塊包含到應用程序內容文件夾中。Psycopg2 Python應用程序的部署問題
Psycopg2正確導入我的機器上,並且應用程序運行正常,但是當應用程序的另一臺計算機上運行(我已經嘗試了4臺不同的電腦......),它無法打開,並且控制檯消息讀取 ImportError:dlopen(/Applications/app.app/Contents/Resources/lib/python2.7/psycopg2/_psycopg.so,2):Library not loaded:libpq.5.dylib
我已經搜索並修改了我的代碼廣泛地通過SO和谷歌無濟於事。 psycopg2鏈接也沒有具體解決這個問題。 http://initd.org/psycopg/articles/2010/11/11/links-about-building-psycopg-mac-os-x/
我已刪除並重新安裝psycopg2 & PostgreSQL的無數次,從源頭,MacPorts的,自制的,等我現在的環境是上面列出的建築,用自制軟件安裝的PostgreSQL 9.2.4,並psycopg2-2.5從源代碼安裝時在setup.cfg
明確鏈接pg_config位置。當我運行otool -l上_psycopg.so,我得到以下
/usr/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0)
/usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
如何我構建的應用程序包括(或指向目標用戶文件如果可用)這些文件?這是正確的方法嗎? Py2app當然不會在「frameworks」選項中包含來自/ usr/lib /的系統文件。
羅納德 - 謝謝你的清晰表達。我意識到我的錯誤。我的應用程序構建現在包含libpq框架,並且在可分發內部正確鏈接。額外的dylib文件和/ usr/lib中一樣好 – LouisL