Similization
@Similization
В прострации

Как на ubuntu найти libopus?

Вот текущий докер файл:
FROM ubuntu:latest

WORKDIR /discord-bot

RUN apt update &&  apt upgrade &&  \
    apt install software-properties-common -y && \
    add-apt-repository ppa:deadsnakes/ppa -y && \
    apt update && \
    apt install python3.10 -y && \
    apt install python3.10-dev -y &&  \
    apt install python3-pip -y && \
    apt install python3.10-venv -y &&  \
    apt-get install mysql-server -y &&  \
    apt-get install libmysqlclient-dev -y && \
    apt install libopus-dev -y &&  apt-get install libopus0 -y

RUN mkdir discord_bot && cd discord_bot &&  \
    python3 -m venv discord-env &&  \
    . ./discord-env/bin/activate


RUN pip3 install --upgrade pip

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

CMD [ "python3", "bot_example.py" ]

Опус как я понимаю скачан в контейнере, но как мне в питоновском файле к нему обратиться?
import disnake
# пробовал по всякому 
disnake.opus.load_opus("libopus0")
disnake.opus.load_opus("opus")
disnake.opus.load_opus("libopus")
disnake.opus.load_opus("")

Пишет, что ничего не находит:
Traceback (most recent call last):
2022-11-09T09:10:29.937107886Z   File "/app/bot_example.py", line 22, in <module>
2022-11-09T09:10:29.937113345Z     bot = StarBot(config=bot_data)
2022-11-09T09:10:29.937115178Z   File "/app/modules/StarBot.py", line 17, in __init__
2022-11-09T09:10:29.937116845Z     disnake.opus.load_opus("libopus0")
2022-11-09T09:10:29.937118553Z   File "/usr/local/lib/python3.10/site-packages/disnake/opus.py", line 285, in load_opus
2022-11-09T09:10:29.937120261Z     _lib = libopus_loader(name)
2022-11-09T09:10:29.937422678Z   File "/usr/local/lib/python3.10/site-packages/disnake/opus.py", line 206, in libopus_loader
2022-11-09T09:10:29.937434428Z     lib = ctypes.cdll.LoadLibrary(name)
2022-11-09T09:10:29.937437803Z   File "/usr/local/lib/python3.10/ctypes/__init__.py", line 452, in LoadLibrary
2022-11-09T09:10:29.937439803Z     return self._dlltype(name)
2022-11-09T09:10:29.937441511Z   File "/usr/local/lib/python3.10/ctypes/__init__.py", line 374, in __init__
2022-11-09T09:10:29.937443928Z     self._handle = _dlopen(self._name, mode)
2022-11-09T09:10:29.937445553Z OSError: libopus0: cannot open shared object file: No such file or directory

В идеале конечно найти этот исполняемый файл и перетащить его в папку util
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
Similization
@Similization Автор вопроса
В прострации
Я разобрался с этим ужасом, всем спасибо
Вот докер:
FROM ubuntu:latest

WORKDIR /discord-bot

RUN apt update &&  apt upgrade &&  \
    apt install software-properties-common -y && \
    add-apt-repository ppa:deadsnakes/ppa -y && \
    apt update && \
    apt install python3.10 -y && \
    apt install python3.10-dev -y &&  \
    apt install python3-pip -y && \
    apt install python3.10-venv -y &&  \
    apt-get install mysql-server -y &&  \
    apt-get install libmysqlclient-dev -y && \
    apt install libopus-dev -y &&  apt-get install libopus0 -y

RUN mkdir discord_bot && cd discord_bot &&  \
    python3 -m venv discord-env &&  \
    . ./discord-env/bin/activate

RUN pip3 install --upgrade pip

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

CMD [ "python3", "bot_example.py" ]

Вот код питона:
import disnake
disnake.opus.load_opus("libopus.so")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov Куратор тега Docker
Системный администратор
Тебе надо эту библиотек установить в образ. Добавь apt install libopus-dev libopus0 в Dockerfile
Ответ написан
@Drno
Ты ставил то на хост? Или заходил в докер-контейнер и внутрь ставил?

Папку usr ты не видишь, потому что она выше находится, чем папка юзера. У тебя даже в примере путь указан от КОРНЯ диска
Консоль открой и поднимись выше в файловой системе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы