Вопрос или проблема
У меня есть исполняемый файл, который загружает /lib64/libpython3.so
во время выполнения. (Сейчас я на fedora 40). Насколько я могу судить, эта библиотека загружает мою версию Python по умолчанию, в данный момент она ссылается на libpython3.12.so.1.0
. Однако бинарный файл, который я пытаюсь выполнить, не поддерживает эту новую версию, поэтому мне нужно запустить его на Python 3.9. Я могу установить старый интерпретатор через dnf install python3.9
, однако он не поставляется с библиотекой верхнего уровня libpython3.so
(это другой пакет python3-libs
). Я могу установить usr/bin/python3
через alternatives
, но я не знаю, как сделать то же самое для библиотеки.
Есть идеи, как это сделать?
Я также пытался использовать conda, но это тоже не сработало.
Ответ или решение
Чтобы выбрать конкретную библиотеку Python для исполняемого файла, вам необходимо создать символическую ссылку или установить подходящую версию библиотеки Python, чтобы она соответствовала вашему исполняемому файлу. Ниже приведены шаги по решению вашей проблемы с библиотекой libpython3.so
, чтобы исправить конфликт версий.
Шаги по установке и использованию нужной версии libpython3.so
:
-
Установите Python 3.9:
Вы уже установили Python 3.9 с помощью команды:dnf install python3.9
-
Проверьте наличие библиотеки:
Убедитесь, что библиотекаlibpython3.9.so
была установлена. Обычно она находится в/usr/lib64/
или/usr/lib/
. Выполните команду:ls /usr/lib64/libpython3.9.so*
Если она отсутствует, вы можете попробовать установить пакет
python3.9-devel
, который должен содержать необходимые файлы:dnf install python3.9-devel
-
Создайте символическую ссылку на
libpython3.so
:
Еслиlibpython3.so
не создан, вы можете создать его как символическую ссылку на версию библиотеки Python 3.9:sudo ln -s /usr/lib64/libpython3.9.so /usr/lib64/libpython3.so
Это заставит систему использовать библиотеку Python 3.9 при запуске вашего исполняемого файла.
-
Измените альтернативы для Python (если необходимо):
Чтобы установить интерпретатор Python 3.9 как основной, выполните:sudo alternatives --set python3 /usr/bin/python3.9
-
Проверьте установку:
Убедитесь, что ваши изменения применились, и версия Python 3, на которую ссылается библиотека, соответствует установленной версии:python3 --version
-
Запуск исполняемого файла:
Теперь вы можете попробовать выполнить ваш исполняемый файл, и он должен корректно использовать библиотеку Python 3.9.
Дополнительные советы:
-
Использование виртуальных окружений:
В случае, если вам нужно использовать несколько версий Python одновременно, рекомендуем использоватьvirtualenv
или встроенный модульvenv
, который позволяет создавать изолированные окружения. -
Проверка зависимостей:
Если ваше приложение имеет другие зависимости, убедитесь, что они также совместимы с Python 3.9. -
Docker или контейнеризация:
Если вы сталкиваетесь с трудностями в управлении библиотеками и версиями Python, можно рассмотреть возможность использования контейнеров (например, Docker) для создания изолированной среды, где вы можете точно контролировать используемые версии ПО.
Следуя этим рекомендациям, вы сможете успешно запустить ваш исполняемый файл с необходимой версией библиотеки Python.