关于linux:我的python安装已损坏/损坏。

My python installation is broken/corrupted. How do I fix it?

我在我的Redhat Linux 7版服务器(最初安装了python 2.6.x)上遵循了这些说明:

指令开始

安装生成工具

1
sudo yum install make automake gcc gcc-c++ kernel-devel git-core -y

安装python 2.7并更改默认python symlink

1
2
3
sudo yum install python27-devel -y
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python

yum仍然需要2.6,所以写它并备份脚本

1
2
3
sudo cp /usr/bin/yum /usr/bin/_yum_before_27
sudo sed -i s/python/python2.6/g /usr/bin/yum
sudo sed -i s/python2.6/python2.6/g /usr/bin/yum

现在应显示2.7.5或更高版本:

1
python -V

指令结束

以上命令和评论摘自:

http://www.lecloud.net/post/61401763496/install-update-to-python-2-7-and-latest-pip-on

python-v命令返回了:

1
-bash: python: command not found

现在我好像没有安装Python。我不想让Yum破产。我尝试安装python 3.4。

whereis python显示:

python/usr/bin/python2.6/usr/bin/python2.6-confi/usr/bin/python/python2.6/usr/bin/python2.6/usr/lib64/python2.6/usr/local/bin/python2.7/usr/local/bin/python3.4-confi/usr/bin/python2.6/usr/bin/python2.6/usr/bin/python2.6/usr/bin/python2.6/python2.6/usr/python2.6/usr/lib/python2.6/python2.6/python2.6/usr/python2.6 n3.4/usr/include/python2.6/usr/share/man/man1/python1.Gz

我现在该怎么办?我想要一个可以工作的python安装。对于我正在做的某些事情,我需要它是2.7或更高。我想让Yum继续工作。


1
2
sudo update-alternatives --remove-all python
sudo ln -sf /usr/bin/python2.7 /usr/bin/python


我在将Ubuntu 18升级到19时遇到了同样的问题,这使得它:

1
2
3
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
do-release-upgrade

来自:

https://bugs.launchpad.net/ubuntu/+source/ubuntu release upgrader/+bug/1825655


通过yum安装python27包可以很容易地解决这个问题。它应该安装在/usr/bin中,并且可以覆盖应该指向2.6的/usr/bin/python符号链接。如果是这样(只需在/usr/bin中运行ls -l python*即可查看),请删除符号链接并将其指向2.6。接下来,为指向/usr/bin/python2.7/usr/local/bin/python创建一个符号链接。最后,修改您的~/.bashrc~/.bash_profile(无论您使用哪种方式),使/usr/local/bin先于/usr/bin进入您的路径:

1
export PATH=/usr/local/bin:$PATH

在文件的最后。这样,/usr/bin/python仍然与系统期望的python 2.6链接,当您在命令行运行python时,它将启动2.7。你也不应该对yum脚本做任何修改——只是用python2.6代替python,而不理解你在做什么不是一个很好的主意。

如果可能的话,我还建议在/usr/local/bin中安装python 3.4,在这里二进制文件将按约定命名为python3。即使它安装在/usr/bin中,您仍然可以选择运行python3python3.4来指定您想要的版本。我在一个CentOS系统上工作,该系统安装了从2.4到3.4版本的python,所有版本都在/usr/local/bin中(我确信这是手动完成的,而不是通过yum完成的),而/usr/bin中唯一的python*是2.6。我找不到RedHat的python3包(我可能不够努力),所以我建议从源代码构建最新版本(本文撰写时为3.4.3)。将tarball解压到一个合适的目录中,查看自述文件,然后在Python-3.4.3目录中运行./configure --help查看选项是什么,以及是否需要更改任何内容。只要您安装了gcc,并且不需要链接到任何奇怪的数学库或任何东西,您就可以运行:

1
2
3
4
./configure
make
make test
sudo make install

安装到/usr/local/bin上。检查make步骤末尾的消息,因为它将列出无法在那里构建的任何模块。失败通常是因为您没有安装所需的库,所以在detect_modules()函数的基目录中查找setup.py(从第449行开始,一直延伸到第1564行)。安装lib和-devel软件包,以便获得必要的头文件。

如果您想安装最新的2.7.9而不是RH的2.7.5,也可以遵循相同的过程。在我看来,2.7.9的一个主要优点是默认情况下安装了pip,使得第三方模块的安装更加容易。

祝你好运!