一周以来,我一直在尝试在全新安装的 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了解详情。