Импорт файла .so в python

об этом спрашивали миллион раз, но, перепробовав все, что я нашел, я все еще получаю ошибку ImportError. Итак, я делаю это:

import sys

sys.path.append("/usr/local/lib")

import libIpxCameraApiPy # I've tried libIpxCameraApiPy.so as well

И я получаю:

ImportError: /usr/local/lib/libIpxCameraApiPy.so: cannot open shared object file: No such file or directory

Я должен упомянуть следующее:

  1. Действительно существует файл с именем libIpxCameraApiPy.so в /usr/local/lib/.
  2. Если я это сделаю cat /etc/ld.so.conf.d/libc.conf я получу

# libc default configuration

/usr/local/lib

  1. Я также пробовал export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH и ldconfig.

  2. Раньше мне удавалось выполнить эту работу на другом компьютере, просто вставив этот файл в «/usr/local/lib», как я сделал в этот раз, и больше ничего не требовалось.

Любая помощь в работе импорта будет оценена по достоинству.

Я думаю, это должно быть import libIpxCameraApiPy без .so?

Michael Butscher 01.07.2024 23:05

@MichaelButscher Может быть, я тоже это пробовал, но это не имело никакого значения

Javi 01.07.2024 23:08

Каков результат file /usr/local/lib/libIpxCameraApiPy.so?

Employed Russian 02.07.2024 16:18

@Employedrussian файл /usr/local/lib/libIpxCameraApiPy.so /usr/local/lib/libIpxCameraApiPy.so: общий объект ELF, 64-битный LSB, x86-64, версия 1 (GNU/Linux), динамически связанный, BuildID[sha1] ]=2934dfd0eedd2446bc661e09a4daf9fe31e7ced1, не удалено

Javi 02.07.2024 19:46

ОК, мне определенно не хватает знаний, но... возможно ли, что файлы .so необходимо перекомпилировать из исходного кода при переходе с компьютера x86_64 с Ubuntu 16 на aarch64 с Ubuntu 22? Я думаю, это может быть критично

Javi 02.07.2024 20:02
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ImportError: /usr/local/lib/libIpxCameraApiPy.so: cannot open shared object file: No such file or directory

file /usr/local/lib/libIpxCameraApiPy.so /usr/local/lib/libIpxCameraApiPy.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=2934dfd0eedd2446bc661e09a4daf9fe31e7ced1, not stripped

Вы либо пытаетесь загрузить 64-битную библиотеку в 32-битный Python, либо пытаетесь загрузить библиотеку x86_64 в двоичный файл aarch64.

Возможно ли, что файлы .so необходимо перекомпилировать из исходного кода при переходе с компьютера x86_64 с Ubuntu 16 на aarch64 с Ubuntu 22?

Это не «возможно», это определенно необходимо: ни один двоичный файл из x86_64 системы не будет работать в aarch64 системе (и наоборот) — это совершенно разные процессоры с совершенно разными и несовместимыми наборами инструкций.

Другие вопросы по теме