繁体   English   中英

我的 python 安装损坏/损坏。 我如何解决它?

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

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

指令的开始

安装构建工具

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

安装 python 2.7 并更改默认的 python 符号链接

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

yum 还需要 2.6,所以写进去并备份脚本

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 或更高版本:

python -V 

指令结束

以上命令和注释摘自:

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

python -v 命令返回了这个:

-bash: python: command not found

现在就好像我没有安装 Python 一样。 我不想百胜坏了。 我尝试安装 Python 3.4。

whereis python显示了这一点:

python: /usr/bin/python2.6 /usr/bin/python2.6-config /usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2 .7 /usr/local/bin/python3.4m-config /usr/local/bin/python2.7-config /usr/local/bin/python3.4 /usr/local/bin/python3.4m /usr/local /lib/python2.7 /usr/local/lib/python3.4 /usr/include/python2.6 /usr/share/man/man1/python.1.gz

我现在该怎么办? 我想要一个有效的 Python 安装。 对于我正在做的某些事情,我需要它是 2.7 或更高。 我希望 yum 仍然有效。

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

我在将 ubuntu 18 升级到 19 时遇到了同样的问题,结果是:

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/local/bin/python创建一个指向/usr/bin/python2.7的符号链接。 最后,修改你的~/.bashrc~/.bash_profile (无论你使用哪个),在你的路径中的/usr/bin之前有/usr/local/bin

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 ),而唯一的python*/usr/bin是 2.6。 我找不到适用于 RedHat 的python3包(我可能看的不够仔细),因此我建议从源代码(撰写本文时为 3.4.3)构建最新版本。 将 tarball 解压缩到合适的目录中,查看 README 文件,然后在Python-3.4.3目录中运行./configure --help以查看选项是什么,以及是否需要更改任何内容。 只要您安装了gcc ,并且不需要链接到任何奇怪的数学库或任何东西,您就应该能够运行:

./configure
make
make test
sudo make install

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

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

祝你好运!

对我来说,除了这个没有任何效果:

unlink /usr/bin/python3
ln -s /usr/bin/python3.7 /usr/bin/python3

信用: https : //josephgeis.dev/2020/04/upgrading-to-ubuntu-20-04-python3/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM