我有一個使用Ogre3D通過C++包裝器模塊編寫的Python應用程序。當試圖運行我的應用程序我可以設置Python的@executable_path
python /path/to/myapp.py
我得到的錯誤
的dlopen(./ MyOgreWrapper.so,2):庫未加載: @executable_path /../框架/ Ogre.framework /path/to/MyOgreWrapper.so原因:/Versions/1.9.0/Ogre 從引用沒有找到圖片
我從那裏MyOgreWrapper.so所在的目錄中運行它,這樣MyOgreWrapper.so能被Python找到。 Ogre.framework位於../Frameworks相對於MyOgreWrapper.so的位置。
$otool -l MyOgreWrapper.so
MyOgreWrapper.so:
@rpath/MyOgreWrapper.so (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Frameworks/Ogre.framework/Versions/1.9.0/Ogre (compatibility version 1.9.0, current version 1.9.0)
...
我懷疑發生這種情況是因爲@executable_path設置爲python可執行文件的路徑。
有沒有辦法從Python設置環境,使@executable_path是當前目錄?我知道如果我在MyOgreWrapper.so中改變Ogre的路徑和其他一些依賴於@loader_path的路徑,所有這些都將工作,但這不是它是如何從盒子出來的,我寧願不必)
我認爲[這](http://stackoverflow.com/questions/4934806/python-how-to-find-scripts-directory)是你在找什麼。 – Travis 2014-10-06 23:12:17