Ну, есть ситуации, когда вы просто не можете установить переменную LD_LIBRARY_PATH до запуска сценария, и вы все равно хотите импортировать одну или две пользовательских библиотеки - скажем, из домашнего каталога на вашем хост-сервере, где у вас есть оченьнемного прав доступа или настройте его для каждого сайта, как в вопросе выше.
В тех случаях, когда все разумные решения недоступны, вы можете загрузить библиотеки с помощью ctypes и затем импортировать модуль, который их использует.Просто принять эту идею, чтобы загрузить все библиотеки из настраиваемой папки для каждого сайта, как в вопросе выше.
Итак, для решения проблемы с libpuzzle с одной зависимостью я в итоге сделал:
from ctypes import *
lib1 = cdll.LoadLibrary('/home/username/lib/libpuzzle.so')
lib2 = cdll.LoadLibrary('/home/username/lib/libgd.so')
import pypuzzle