Більше

ImportError: libqgis_core.so.2.9.0: не вдається відкрити файл спільного об'єкта: такого файлу чи каталогу немає

ImportError: libqgis_core.so.2.9.0: не вдається відкрити файл спільного об'єкта: такого файлу чи каталогу немає


Я встановив qgis у debian linux, і я хочу запустити окремий додаток у python. Тому я імпортую qgis.core та qgis.gui у цьому додатку. Але це дає мені помилку:

ImportError: libqgis_core.so.2.9.0: не вдається відкрити файл спільного об'єкта: такого файлу чи каталогу немає

Я встановив останню версію за допомогою:

deb http://qgis.org/debian jessie main deb-src http://qgis.org/debian jessie main

Мій PYTHONPATH визначається так:/usr/share/qgis/python/plugins. І я шукаю libqgis_core, і я знайшов libqgis._core2.8.0. То чому програма шукає версію 2.9.0?


Вам потрібно правильно встановити LD_LYBRARY_PATH, що пояснюється тут: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#running-custom-applications


У мене була така ж проблема після встановлення останньої версії openssl 1.1.0c, я вирішив проблему, скопіювавши файли бібліотеки libcrypto.so.1.1, libcrypto.a та libssl.so з/usr/local/lib64 у бібліотеку спільного доступу за адресою /usr/lib64.
Після копіювання бібліотек вам потрібно створити символічне посилання.

Після створення символічного посилання також потрібно було відновити кеш ldconfig:

З вашою оригінальною версією OpenSSL він знав, як знайти спільні бібліотеки, оскільки /usr /lib64 включено до шляху пошуку компоновника. Коли ви завантажували та компілювали "локальну" копію OpenSSL, спільні бібліотеки за замовчуванням були розміщені у/usr/local/lib64. Тож вам, мабуть, просто потрібно додати цей каталог до шляху пошуку компоновника, наприклад: (як root):

Я вважаю, що це вирішить вашу проблему.

Ви можете перевстановити його за допомогою

yum install -y openssl -devel

Я отримав цю помилку за допомогою Termux у ChromeOS, що спричинило збій програм командного рядка npm та node.

Запуск оновлення pkg вирішив проблему!

Libcrypto.so належить до пакета openssl-libs. Якщо вручну видалити (за допомогою --nodeps) цей пакет або пошкодити його, оновивши його, ви втратите доступ до yum, wget, curl, ssh тощо. Якщо система має доступ до Інтернету, завантажте openssl-libs за допомогою команди /usr/bin/GET. Якщо ви намагаєтесь відновити версію openssl-libs-1.0.2k-8.el7.x86_64, синтаксис виглядатиме так, як показано нижче:

Це створить для вас пакет openssl-libs-1.0.2k-8.el7.x86_64.rpm, ви можете використовувати це для повторної інсталяції або вилучення відсутніх файлів .so.

Те, що сказав @benedict, спрацювало для мене. Однак ви можете виявити, що деякі символічні посилання вказують на старіші версії. Запуск ls -l libcrypto* з /usr /libs покаже вам посилання. Як у прикладі нижче:

Тоді ви б хотіли спочатку видалити наявне посилання, набравши sudo rm libcrypto.so, а потім скопіювавши libcrypto.so.1.1, як згадував @benedict. Нарешті, ви можете створити нове посилання. sudo ln -s libcrypto.so.1.1 libcrypto.so

Це найкраще рішення, яке я знайшов. інші рішення, доступні в Інтернеті, не переживуть перезавантаження системи)


Ubuntu 18.04: libcrypto.so.1.0.0: не вдається відкрити спільний об'єктний файл: такого файлу чи каталогу немає

Будь ласка, перевірте, яка версія libssl встановлена ​​у вашій системі. У випадку мого на Ubuntu 19.04 замість необхідного libssl1.0 був libssl1.1. Тому мені потрібно встановити програмне забезпечення, що поставляється разом з libssl1.0. Найкраще, що ubuntu поставляється з оснащенням для встановлення такого програмного забезпечення, як Termius. Потім виправте проблему, як відповів "Родріго".

Знайдіть встановлений шлях:

sudo locate libcrypto.so.1.0.0

Потім або додайте виявлений шлях до змінної path:

експорт PATH = & ltdвизначений шлях & gt: $ PATH

Або додайте бібліотеки до попередньо включеного шляху:

sudo ln -s & ltd відкритий шлях & gt/usr/lib/

Я відчув таку саму помилку, що й OP, після використання оновлення програмного забезпечення Ubuntu для оновлення з 18.04 по 19.04.

Коли оновлення було майже завершено та видаляли старі невикористані ядра Linux, помилка операційної програми сталася під час кроку налаштування grub, керованого Updater.

Шукаючи виправлення, я знайшов пост ОП і спробував виконати ті ж дії. Оскільки я імпровізував і знайшов чисте вирішення, я опублікую його тут:

Таким чином, libcrypto.so.1.0.0 не знайдено у очікуваному місці за допомогою grubcfg_proxy. Дотримуючись порад респондента ОП:

Ах ха! /usr/lib/x86_64-linux-gnu/має бути місцем, де grubcfg_proxy має знайти libcrypto.so.1.0.0.

Що з інших перенести на cp -p, ln або ln -s до очікуваного розташування? Підписи md5 підказують мені, які файли мають однаковий байт -вміст. Чи є ті самі фактичні файли?

Номери inode у стовпці 1 показують, які екземпляри libcrypto.so.1.0.0, а кількість жорстких посилань 1 у стовпці 3 показує, що символічні посилання беруть участь у наданні декількох шляхів.

Я вирішив, що мені просто потрібно cp -p один з файлів у правильному місці, щоб подолати проблему. Який із двох різних підписів md5 / різних байтових варіантів вмісту вибрати?

Після деякого гуглювання я виявляю, що/snap/core/. базується на ubuntu 16.04 та/snap/core18/. базується на ubuntu 18.04.

Я нахиляюся до/snap/core18/. /libcrypto.so.1.0.0.

Виявляється після деякої перевірки, що/snap/core18/. /libcrypto.so.1.1 та /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 є однаковими, тому я вирішив залишити /usr/lib/x86_64-linux-gnu/libcrypto.so.1. * усі ubuntu 18.04.

Я копіюю файл на місце і знову запускаю sudo apt -get install -f. Вуаля! grubcfg_proxy задоволений, а старі ядра видалені.


5 відповідей 5

Я стикався з такою ж проблемою, на мою думку (у мене було те саме повідомлення про помилку під час спроби запустити RStudio після оновлення Ubuntu з 18.04 до 20.04). Ось що у мене спрацювало після прочитання наступної сторінки: https://packages.ubuntu.com/xenial/amd64/libssl1.0.0/download

  • Відредагуйте вихідний список sudo nano /etc/apt/sources.list, щоб додати наступний рядок: deb http://security.ubuntu.com/ubuntu xenial-security main
  • Потім оновіть sudo apt і sudo apt встановіть libssl1.0.0.

Сподіваюся, це теж не спрацює у вас.

Я вирішив свою проблему з libssl1.0.0 так:

Я відкрив http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/ у своєму браузері та завантажив останню версію libssl1.0.0 для моєї системи (для мене це було libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb) Тоді я просто встановлюю його:

Я намагався встановити RStudio Server 1.4.1103 на Ubuntu 20.04 і мав проблему & quot libssl1.0.0 & quot (Ubuntu 18.04+ спочатку використовує libssl1.1). Я знайшов тут рішення і оновив деякі версії. Перевірте оновлення тут.

Встановлення libssl1.0.0

Встановлення сервера RStudio 1.4.1103

Пошук моєї локальної IP -адреси (у моєму випадку 192.168.0.17)

Нарешті я відкрив Studio Server у своєму браузері за допомогою http://192.168.0.17:8787/.

Я використовую Debian Buster, коли стикався з такою проблемою, як ви. Я вирішив це, зробивши це:

Спочатку я бачу, що libssl1.0.0 відсутня у сховищі APT Debian Buster, його замінює libssl1.1

Тому я додаю сховище APT Jessie до /etc/apt/source.list, виконавши цю команду:

Вставте сховище APP Jessie: & quotdeb http://security.debian.org/debian-security jessie/оновлення main & quot

Зберегти та вийти (Ctrl + s & amp & amp Ctrl + x) Запустіть оновлення: sudo apt update Встановіть пакет libssl1.0.0 sudo apt install libssl1.0.0


Спробуйте з yum whatprovides */libcurl.so.4 та встановіть пакети з відповідними файлами. Зверніть увагу на установку обидва пакети i386 та x86_64.

Якщо це не спрацює, будь ласка, вкажіть результат команди вище.

CentOS 5 дійсно старий. Очевидно, що вашому додатку потрібна нова версія curl. Ви можете отримати його з іншого стороннього сховища або створити його самостійно, але оновлення системи до чогось більш сучасного звучить як краща ідея.


4 Відповіді 4

Згідно з офіційною документацією, якщо у вас були встановлені попередні версії opencv-python та opencv-contrib-python, спершу слід розглянути їх видалення:

Також ви можете спробувати встановити їх як sudo?

Хоча ви знайдете багато підручників, які допоможуть вам встановити opencv та ffmpeg (обидва вони йдуть рука об руку майже завжди), я опублікую тут те, що мені підходило.

Кроки для правильної установки ffmpeg

  1. Завантажте останню статичну версію ffmpeg зі сторінки завантаження залежно від вашого ОС.
  2. Розпакуйте встановлений zip-файл за допомогою 7-zip. Папка матиме назву "ffmpeg-20130731-git-69fe25c-win32-static".
  3. Створіть нову папку з назвою ffmpeg у своєму C: і скопіюйте вміст видобутої папки в цю нову.
  4. Тепер натисніть кнопку «Пуск», клацніть правою кнопкою миші на комп’ютері. Виберіть Властивості з меню, натиснутого правою кнопкою миші. У вікні «Система» натисніть на посилання «Додаткові параметри системи».
  5. Натисніть кнопку Змінні середовища у вікні Властивості системи. Він буде розташований у нижній частині вікна.
  6. Виберіть запис PATH у розділі "Змінні користувача". Натисніть кнопку Редагувати. У полі “Значення змінної” введіть c: ffmpeg bin після всього, що там уже написано. Якщо ви скопіювали його на інший диск, змініть букву диска. Натисніть OK, щоб зберегти зміни. Якщо в налаштуваннях "Змінні користувача" немає запису PATH, натисніть кнопку Створити та створіть його. Введіть PATH для імені змінної. Цей метод увімкне FFmpeg для поточного користувача. Інші користувачі Windows не зможуть запустити його з командного рядка. Щоб увімкнути його для всіх, введіть c: ffmpeg bin у записі PATH у "Системні змінні". Будьте дуже обережні, щоб не видалити все, що вже є у цій змінній.
  7. Відкрийте командний рядок. Введіть команду ffmpeg –version. Якщо командний рядок повертає інформацію про версію для FFmpeg, то інсталяція пройшла успішно, і доступ до FFmpeg можна отримати з будь -якої папки командного рядка. Якщо ви отримуєте помилку libstdc ++ -6, якої немає, можливо, вам доведеться встановити розповсюджуваний пакет Microsoft Visual C ++, який безкоштовно доступний у Microsoft.

Я виконав ці кроки з сайту, якого не пам’ятаю, але це працювало так само добре.

Тепер, щоб встановити opencv і забезпечити його роботу, я виконав наступні кроки:

  1. Завантажте саморозпаковуваний виконуваний файл з веб-сайту OpenCV.
  2. Запустіть виконуваний файл, який, у свою чергу, витягне виконуваний файл.
  3. Створіть папку у C: opencv
  4. Скопіюйте вміст витягнутих файлів у opencv
  5. Відредагуйте змінну середовища PATH. Це буде залежати від версії, яку ви хочете встановити (наприклад, 32 або 64 біт), а також від версії візуальної студії, яку ви встановили (швидкі видання підходять).

---- Встановлення OpenCV Python Я використовую Anaconda. Отже, я скопіював файл cv2.pyd з цього каталогу OpenCV (початкова частина може дещо відрізнятися на вашому комп'ютері):


Imagemagick libMagickCore.so.2 не знайдено

У мене є 2 сервери debian, які ми використовуємо на роботі, один - це наш сервер розробки, а інший - наше виробництво. Я намагаюся змусити imagemagick працювати на обох серверах, і з якихось причин виробничий сервер працює з imagemagick нормально, але сервер розробників, схоже, цього не хоче.

і отримав цю відповідь у відповідь

РОЗВИТОК:

Я зробив dpkg проти обох серверів, щоб перевірити версії, і я отримав наступне

РОЗВИТОК:

Я шукав по всій ОС libMagickCore.so.2 і ніколи не міг його знайти, я знайшов ці файли на обох серверах.

РОЗВИТОК:

Я вручну додав libMagickCore.so.2 на сервер розробників, щоб побачити, чи це спрацює, але це не вдалося.

Я видалив весь imagemagick з сервера розробників і перевстановив його, і досі нічого. Я запустив ldconfig, і він створить посилання для версії 3, але не 2. Я навіть перезавантажив машину, зробив оновлення/оновлення на обох машинах, і у мене просто немає варіантів, що робити. Хтось має ще якусь ідею для мене?

РОЗВИТОК

Тому . це стало моєю проблемою. Я видалив конвертер у/usr/local/bin зі свого сервера розробки, і він після цього запрацював.


4 Відповіді 4

Настійно свідчить про те, що система не має інтерпретатора ELF /lib/ld-linux.so.2. Тобто ця 64-розрядна система не має встановлених 32-розрядних бібліотек сумісності. Таким чином, відповідь @user1334609 по суті правильна.

Гаразд, я був зайнятий протягом останніх восьми годин, щоб відновити роботу системи після перегріву процесора. Під час перезавантаження стало очевидним, що він настільки зіпсований, що навіть запасна консоль initrd більше не розпізнавала мою клавіатуру. Для мене загадка, як система змогла так довго працювати, поки я намагався реалізувати незліченну кількість ваших пропозицій (велике спасибі !!)

і після цього клавіатура не працює :-)

Проблема полягала в тому, що оновлення замінило символічну посилання /lib -& gt /usr /lib каталогом. Отже, це означало, що всі бібліотеки та модулі ядра, які, як очікується, будуть у /lib, були відсутні :-)

Тож я відтворив символьне посилання та перевстановив базову систему з живого компакт -диска.

Тепер, коли у мене знову є Інтернет, я також знайшов цю тему

Я також використав диспетчер пакетів моєї замурованої дискової установки (так званий pacman) з живого компакт-диска, щоб перевстановити всі пакети базової групи (можливо, тільки ядро, тому пакета linux було б достатньо, я не знаю)

Для цього встановіть основний розділ замурованої установки в каталог /mnt живої системи компакт -дисків і використовуйте chroot, щоб змусити pacman подумати /mnt is /(вставте основний розділ вашої цегляної системи для sdXXX)

Для запису: створіть відносне символічне посилання, тому ln -s usr/lib/mnt/lib, а не ln -s/usr/lib/mnt/lib, тому що під час раннього завантаження системи (стадія initrd) перший розділ буде змонтовано першим до /new_root. Якби символічне посилання було абсолютним, ви отримали б вищезгадану помилку під час раннього завантаження.


4 Відповіді 4

Ви отримуєте помилку дозволів. Обліковий запис під керуванням SQL Server не має необхідних прав на папку, яка міститиме файли бази даних.

Вам потрібно надати обліковому запису, на якому працює SQL Server (а не вашому обліковому запису) повний контроль над C: Program Files Microsoft SQL Server MSSQL10.SQLEXPRESS MSSQL DATA.

Виходячи з нашої теми коментарів, здається, що ви, можливо, трохи заблукали під час встановлення. Інсталятор дозволяє вибрати каталог даних за умовчанням і (я б припустити) встановлює відповідні дозволи в цьому каталозі для облікового запису служби, який ви вказали.

У вашому операторі CREATE DATABASE ви вказуєте розташування, але чи було це місце тим, яке було вказано у вихідному налаштуванні? Чи змінився обліковий запис служби?

Спосіб перевірити це - просто запустити загальний файл

Якщо ви отримуєте таку ж помилку, можливо, обліковий запис служби змінився або щось щодо дозволів NTFS змінилося.

Шлях розв'язання (також на основі рядка коментаря) має підтвердити, що служба, яка працює під керуванням SQL Server, має дозволи R/W на вказаний вами шлях. Зробити це:

Пуск-> Виконати-> services.msc-> прокручуйте список служб, поки не знайдете SQL Server-> клацніть правою кнопкою миші-> властивості-> вкладка Увійти

Тепер перейдіть і переконайтеся, що обліковий запис має відповідний дозвіл у цьому каталозі, щоб робити все, що йому потрібно.


Інтерфейс ядра з вбудованим сервером HTTP (S).

Веб -інтерфейс Raspberry Pi Cam

Гарний проект silvanmelchior, який розгортає веб -сервер, подібний до відеореєстратора, багатоцільовий потоковий сервер. Потрібна додаткова інформація

Метод спадщини

Потокове передавання з mjpg підтримується майже всіма браузерами, включаючи Internet Explorer 6. Багато камер, що використовувалися до H.264, використовували апаратний mjpg, який, по суті, якнайшвидше скидав файли JPEG у папку, тоді як mjpg зачитував файл у буфер і видаляв їх. Деякі пристрої можуть досягати 25 кадрів в секунду, і навіть якщо у вас погане з'єднання, ви отримаєте принаймні 1 кадр в секунду.

Підтримка mjpg була скасована у камерах HD, оскільки файл JPEG став занадто великим для потокового передавання через Інтернет, а протокол H.264 - це набагато швидший та якісніший протокол.

Оскільки у нас немає можливості транслювати H.264 за допомогою модуля камери, це здається життєздатним резервом.

Це майже миттєво, але не очікуйте, що ви отримаєте більше 1,5 кадрів в секунду. Це відбувається через те, що розпізнення є надзвичайно ПОВИЛИМ! Використання функції проміжок часу, встановленої на 100 мс, яка повинна дати нам 10 кадрів в секунду, не працює, тому що raspistill просто задихається і має серйозні проблеми з продуктивністю в собі.

  1. Змінити /tmp, щоб використовувати оперативну пам'ять для швидкості /etc /default /tmpfs - змінити RAMTMP = так (Це спроба збільшити частоту кадрів в секунду, але raspistill просто не може триматися самостійно.)
  2. Перезавантажте
  3. apt-get install git
  4. apt-get install libjpeg8-dev
  5. apt-get install libv4l-dev
  6. apt-get install imagemagick
  7. cd /usr /src, mkdir mjpg-стример, cd mjpg-стрімер.
  8. git clone https://github.com/engine12/mjpg-streamer.git
  9. make USE_LIBV4L2 = true очистити все
  10. НЕОБОВ’ЯЗКОВО Якщо у вас є помилки
  11. sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
  12. sudo ln -s /usr/include/lib4l2.h /usr/include/linux/lib4l2.h
  13. Усередині make -файлу прокоментуйте всі плагіни, за винятком input_file та output_http, і зробіть знову. У мене тут було багато проблем.
  14. Скопіюйте двійковий файл, mjpg_streamer та його плагіни input _*. So та виведіть _*. So до/usr/local/bin. В іншому випадку запустіть його безпосередньо з каталогу src.
  15. Необов’язковий кінець
  16. mkdir /tmp /потік
  17. raspistill -w 640 -h 480 -q 5 -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0: 0: 0 & amp
  18. LD_LIBRARY_PATH =././Mjpg_streamer -i "input_file.so -f/tmp/stream" -o "output_http.so -w ./www" (запустіть це, де є двійковий файл і плагіни)
  19. Перейдіть до http: // & ltIP-адреси & gt: 8080
  20. Ось кілька варіантів, насолоджуйтесь "прямим" потоковим передаванням по старому. підтримується більшістю браузерів - сучасних, старих та експериментальних.

Я намагався зібрати його приблизно 5 годин. зітхати, але я думаю, що я буду використовувати це, оскільки можу отримати доступ до потоку з будь -якого телефону та будь -якого браузера. Мені просто потрібно почекати, поки у нас стануть кращі водії. Ще рік -два. :(

Яку б якість я не намагався, я отримую не швидше, ані повільніше, ніж 1 кадр / с за допомогою потоку. Я використовував 720p та 1080p, і тільки якість зображення покращується, але fps - це не різниця у локальній мережі. Я припускаю, що менші налаштування допоможуть у WAN/3G або інших радіопередачах.

raspistill записує зображення в один файл. Це може бути вузьким місцем. Він записує файл, strjimer mjpg читає його та видаляє, що викликає блокування вводу -виводу, тому raspistill не може записувати у файл.

Єдине, про що я можу думати, - це використання raspivid у FFmpeg, який створюватиме для нас файли JPEG - мені потрібно спробувати це, можливо, це набагато швидше, ніж usign raspistill. Мені вдалося отримати 25 кадрів в секунду в шокуючій якості, і це було затримано приблизно на 10 секунд. Змінивши налаштування, я отримав близько 3 кадрів в секунду, але 100% процесор. Для обробки відеопотоку не використовується апаратне забезпечення.

Я також читав і виявив, що ми можемо використовувати %d у назві вихідного файлу raspistill. Цікаво, чи це збільшить частоту кадрів в секунду. Крім того, кодування JPG апаратно прискорюється в raspistill, тому мені дуже важко зрозуміти, чому це так повільно.

Я отримав приголомшливі 2 FPS, використовуючи %d у назві файлу. Чомусь запис файлу JPEG жахливо повільний від raspistill. Зітхнути.