Еще некоторые детали были бы хороши: какая библиотека AJAX Вы использование, что хотели бы Вы к achive, как Вы делаете это.
, Например, это может быть междоменный запрос Ajax, который не позволяется. В этом использовании случая JSON.
sys.path
ищется только для модулей Python. Для динамически подключаемых библиотек искомые пути должны быть в LD_LIBRARY_PATH
. Убедитесь, что ваш LD_LIBRARY_PATH
включает / usr / local / lib
, и если нет, добавьте его и попробуйте еще раз.
Дополнительная информация ( источник ]):
В Linux переменная среды LD_LIBRARY_PATH - разделенный двоеточием набор каталогов, где библиотеки следует искать сначала, прежде чем стандартный набор справочников; этот полезно при отладке новой библиотеки или используя нестандартную библиотеку для специального назначения. Среда переменная LD_PRELOAD общие списки библиотеки с функциями, которые отменяют стандартный набор, так же как /etc/ld.so.preload делает. Эти реализуется загрузчиком /lib/ld-linux.so. Я должен отметить, что, в то время как LD_LIBRARY_PATH работает на многих Unix-подобных систем, не работает на все; например, этот функционал доступен на HP-UX, но как переменная среды SHLIB_PATH и в AIX эта функция реализована переменная LIBPATH (с тем же синтаксис, список, разделенный двоеточиями).
Обновление: для установки LD_LIBRARY_PATH
, используйте одно из следующих, в идеале в вашем ~ / .bashrc
или эквивалентный файл:
export LD_LIBRARY_PATH=/usr/local/lib
или
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Используйте первую форму, если она пуста (эквивалентна пустой строке или вообще отсутствует), и вторую форму, если это не так. Обратите внимание на использование экспорта .
Вы также можете установить LD_RUN_PATH в / usr / local / lib в своей пользовательской среде при первой компиляции pycurl. Это встроит / usr / local / lib в атрибут RPATH модуля расширения C. Таким образом, он автоматически знает, где найти библиотеку во время выполнения, без необходимости устанавливать LD_LIBRARY_PATH во время выполнения.
Убедитесь, что ваш модуль libcurl.so находится в пути к системной библиотеке, который отличается и отделен от пути библиотеки python.
«Быстрое исправление» - добавить этот путь в LD_LIBRARY_PATH переменная. Однако настройка этой системы (или даже учетной записи) является ПЛОХОЙ ИДЕЕЙ, поскольку ее можно настроить таким образом, чтобы некоторые программы находили библиотеку, которую не должны, или, что еще хуже, открывать дыры в безопасности.
Если ваши «локально установленные библиотеки» установлены, например, в / usr / local / lib, добавьте этот каталог в /etc/ld.so.conf (это текстовый файл) и запустите «ldconfig»
запустит утилиту кэширования, но также создаст все необходимые «символические ссылки», необходимые для работы системы загрузчика. Удивительно, что команда "make install" для libcurl этого еще не было, но возможно, что не может, если / usr / local / lib уже не находится в /etc/ld.so.conf.
PS: возможно, ваш /etc/ld.so. conf не содержит ничего, кроме "include ld.so.conf.d / *. conf". Вы все равно можете добавить путь к каталогу после него или просто создать новый файл внутри каталога, из которого он включается. Не забудьте после него запустить "ldconfig"
Будьте осторожны. Неправильный ответ может испортить вашу систему.
Дополнительно: убедитесь, что ваш модуль python скомпилирован с ЭТОЙ версией libcurl. Если вы просто скопировали некоторые файлы из другой системы, это не всегда сработает. В случае сомнений скомпилируйте свои модули в системе, в которой вы собираетесь их запускать.
Возможно, ваш /etc/ld.so.conf не содержит ничего, кроме "include ld.so.conf.d / *. conf". Вы все равно можете добавить путь к каталогу после него или просто создать новый файл внутри каталога, из которого он включается. Не забудьте после этого запустить "ldconfig"Будьте осторожны. Неправильный ответ может испортить вашу систему.
Дополнительно: убедитесь, что ваш модуль python скомпилирован с ЭТОЙ версией libcurl. Если вы просто скопировали некоторые файлы из другой системы, это не всегда сработает. В случае сомнений скомпилируйте свои модули в системе, в которой вы собираетесь их запускать.
Возможно, ваш /etc/ld.so.conf не содержит ничего, кроме "include ld.so.conf.d / *. conf". Вы по-прежнему можете добавить путь к каталогу после него или просто создать новый файл внутри каталога, из которого он включается. Не забудьте после этого запустить "ldconfig"Будьте осторожны. Неправильный ответ может испортить вашу систему.
Дополнительно: убедитесь, что ваш модуль python скомпилирован с ЭТОЙ версией libcurl. Если вы просто скопировали некоторые файлы из другой системы, это не всегда сработает. В случае сомнений скомпилируйте свои модули в системе, в которой вы собираетесь их запускать.
Неправильный ответ может испортить вашу систему.Дополнительно: убедитесь, что ваш модуль python скомпилирован с ЭТОЙ версией libcurl. Если вы просто скопировали некоторые файлы из другой системы, это не всегда сработает. В случае сомнений скомпилируйте свои модули в системе, в которой вы собираетесь их запускать.
Неправильный ответ может испортить вашу систему.Дополнительно: убедитесь, что ваш модуль python скомпилирован с ЭТОЙ версией libcurl. Если вы просто скопировали некоторые файлы из другой системы, это не всегда сработает. В случае сомнений скомпилируйте свои модули в системе, в которой вы собираетесь их запускать.
Была точно такая же проблема. Я установил curl 7.19 в / opt / curl /, чтобы убедиться, что я не повлияю на текущий curl на наших производственных серверах. Как только я связал libcurl.so.4 с / usr / lib:
sudo ln -s /opt/curl/lib/libcurl.so /usr/lib/libcurl.so.4
I все еще есть та же ошибка! Дурф.
Но запустив ldconfig, я установил связь, и это сработало. Нет необходимости устанавливать LD_RUN_PATH или LD_LIBRARY_PATH вообще. Просто нужно было запустить ldconfig.