使用环境:Aws EC2,红帽-百
在安装awscli的时候,由于awscli 2和python2.6不兼容,我不得不安装python 3.7。但是在安装的时候,我删除了所有现有的python包,包括一次默认的系统使用。
现在,当我尝试执行yum时,它给出以下错误:
/usr/bin/python文件夹中的文件:错误的解释器:没有这样的文件或目录
然后,我安装python2.6(也尝试了2.7)手动与以下方式.
sudo wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
sudo tar xzf Python-2.7.9.tgz
cd Python-2.7.9
sudo ./configure --enable-optimizations
sudo make & sudo make install
但它再次给出相同的错误:
当我更改默认的python目录时
sudo vim `which yum`
/usr/local/bin/python2.7
并尝试了/usr/local/bin/python2.6
同样,对于2.7,我尝试添加以下内容
sys.path.append('/usr/local/bin/python2.7/site-packages')
sys.path.append('/usr/lib64/python2.7/site-packages')
但现在它给出了以下错误。
没有名为yum的模块
2条答案
按热度按时间yruzcnhs1#
我不确定这是否是一个有效的答案,但我已经投入了几个小时,结论是重新安装系统。
另一种方法可能是彻底调查所有软件包的依赖关系,手动下载rpms并使用rpm命令更新,但这又需要几个小时。因为我们很快就要重新安装整个系统,所以这不是一个大问题。
我们将使用Debian 11,而不是CentOS。CentOS 7真的很老了。
需要注意的是,如果新的Python首先是“altinstall“而不是“install“,这个问题就不会发生。
nqwrtyyt2#
好吧,您知道它需要哪个python(路径)--假定是原始系统上的python
2.6
:/usr/bin/python文件夹中的文件:错误的解释器:没有这样的文件或目录
您知道python从头开始构建时安装到的位置:
/usr/本机/bin/python2.6
一般来说,删除系统中的python安装不是一个好主意,这就是为什么会有像
pyenv
这样的工具。回到您的问题-您可以暂时创建一个别名,或者临时在shell中创建,或者永久地在
~/.bashrc
中创建(假设您使用bash
):对于您的用户和会话,这将使
python
链接到/usr/local/bin/python2.6
。对了,这样的问题:
没有名为yum的模块是因为仅为特定的python版本安装了依赖项,即:
我只能推荐使用
pyenv
来管理系统中的多个python版本,以及使用python依赖管理工具(例如poetry
)来定义依赖关系,并根据python版本、约束和依赖关系的依赖关系正确安装它们。