C++ 래퍼 모듈을 통해 Ogre3D를 사용하는 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 할 수 있도록 파이썬에 의해 발견된다. Ogre.framework는 MyOgreWrapper.so의 위치를 기준으로 ../Frameworks에 있습니다.
$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 실행 파일의 경로로 설정되어 있기 때문에 이러한 현상이 발생할 것으로 생각됩니다.
@executable_path가 현재 디렉토리가되도록 Python에서 환경을 설정하는 방법이 있습니까?
(내가 OOre에 대한 경로를 MyOgreWrapper.so와 @loader_path에 대한 몇 가지 다른 의존성으로 바꾸면 그것이 모두 작동한다는 것을 알고 있습니다. 그러나 그것은 상자에서 나오는 방법이 아니며 차라리 가질 필요가 없습니다. do).
[이] (http://stackoverflow.com/questions/4934806/python-how-to-find-scripts-directory)가 당신이 찾고있는 것이라고 생각합니다. – Travis