В течение недели я пытаюсь установить программное обеспечение на свежеустановленную версию CentOS 8. Процесс установки и само программное обеспечение отлично работают на CentOS 7, но мне было поручено установить его на CentOS 8.
Основная проблема сейчас в том, что отсутствуют некоторые пакеты python. В частности, я не могу получить следующие имена пакетов:
MySQL-python
libxml2-python
numpy
python-imaging
python2-pyside
python-netifaces
Конечно, я могу установить библиотеки через pip2, но, похоже, это не удовлетворяет всем зависимостям.
Придется ли нам обновить зависимости и, возможно, изменить какой-то код, или есть способ заставить его работать как есть? Желательно с EPEL 8, но у меня все равно возникают те же ошибки с EPEL 7.
решение1
CentOS 8 основан на RHEL 8, который перешел на Python 3 в качестве языка по умолчанию. Многие пакеты Python 2 больше не доступны или изменили названия — например, NumPy для Python 2 — это python2-numpy
.
С чисто питонской точки зрения наилучшим подходом в вашей ситуации будет использование виртуальной среды: установите python2-virtualenv
пакет CentOS, затем запустите
python2 -m virtualenv --system-site-packages yourenv
(заменив yourenv
на имя, которое вы хотите дать своей виртуальной среде, которое также будет каталогом, в котором она создана), и активируйте среду с помощью
source yourenv/bin/activate
Затем вы можете установить зависимости Python, pip install
не влияя на систему за пределами виртуальной среды.
Однако у меня сложилось впечатление, что вы используете пакет с зависимостями от пакетов RPM. Это будет сложнее исправить, и наилучший подход будет зависеть от других факторов. Если упакованное программное обеспечение доступно для Python 3, я бы рассмотрел вариант упаковки его вместо этого; в противном случае вы можете попробовать переработать существующий пакет, но есть приличный шанс, что это будет сложнее, чем использование виртуальной среды...
ВидетьПитон в RHEL 8для получения подробной информации.