CentOS 8 上缺少 Python 包

CentOS 8 上缺少 Python 包

一周以来,我一直在尝试在全新安装的 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 软件包不再可用,或者已更改名称 - 例如,Python 2 的 NumPy 是python2-numpy.

从纯粹的Pythonic角度来看,您的情况最好的方法是使用虚拟环境:安装CentOSpython2-virtualenv包,然后运行

python2 -m virtualenv --system-site-packages yourenv

(替换yourenv为您想要为虚拟环境指定的名称,该名称也将是其创建的目录),然后使用以下命令激活环境

source yourenv/bin/activate

然后,您可以使用以下命令安装 Python 依赖项pip install,而不会影响虚拟环境之外的系统。

不过,我的印象是您正在使用一个依赖于 RPM 包的包。这将更难解决,最好的方法将取决于其他因素。如果打包的软件可用于 Python 3,我会考虑将其打包;否则,您可以尝试重新设计现有的包,但很有可能比使用虚拟环境更复杂......

RHEL 8 中的 Python了解详情。

相关内容