Python использует переменную среды PYTHONPATH
, чтобы определить, в каких папках он должен искать модули.
Вы можете поиграть с ним, изменив sys.path
, который отлично работает для чистых модулей Python.
Но когда модуль использует общие объектные файлы или статические библиотеки, он ищет те, которые находятся в LD_LIBRARY_PATH
(на linux), но это невозможно изменить так же легко и зависит от платформы, насколько я знаю.
Быстрое исправление этой проблемы - это, конечно, установить переменную среды или вызвать script как LD_LIBRARY_PATH=. ./script.py
, но тогда вам придется снова установить ее для каждой новой оболочки, которую вы открываете.
Кроме того, файлы .so
в моем случае всегда будут находиться в том же каталоге, что и файл .py
, но могут быть хорошо перемещены на другой абсолютный путь, поэтому я бы хотел установить их автоматически каждый раз, когда я вызываю script.
Как я могу отредактировать путь, в котором интерпретатор Python ищет платформу для библиотек независимо от времени выполнения?
EDIT:
Я уже пробовал os.environ['LD_LIBRARY_PATH'] = os.getcwd()
, но безрезультатно.