об этом спрашивали миллион раз, но, перепробовав все, что я нашел, я все еще получаю ошибку 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
Я должен упомянуть следующее:
cat /etc/ld.so.conf.d/libc.conf
я получу# libc default configuration
/usr/local/lib
Я также пробовал export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
и ldconfig
.
Раньше мне удавалось выполнить эту работу на другом компьютере, просто вставив этот файл в «/usr/local/lib», как я сделал в этот раз, и больше ничего не требовалось.
Любая помощь в работе импорта будет оценена по достоинству.
@MichaelButscher Может быть, я тоже это пробовал, но это не имело никакого значения
Каков результат file /usr/local/lib/libIpxCameraApiPy.so
?
@Employedrussian файл /usr/local/lib/libIpxCameraApiPy.so /usr/local/lib/libIpxCameraApiPy.so: общий объект ELF, 64-битный LSB, x86-64, версия 1 (GNU/Linux), динамически связанный, BuildID[sha1] ]=2934dfd0eedd2446bc661e09a4daf9fe31e7ced1, не удалено
ОК, мне определенно не хватает знаний, но... возможно ли, что файлы .so необходимо перекомпилировать из исходного кода при переходе с компьютера x86_64 с Ubuntu 16 на aarch64 с Ubuntu 22? Я думаю, это может быть критично
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
системе (и наоборот) — это совершенно разные процессоры с совершенно разными и несовместимыми наборами инструкций.
Я думаю, это должно быть
import libIpxCameraApiPy
без.so
?