【问题标题】:My python installation is broken/corrupted. How do I fix it?我的 python 安装已损坏/损坏。我如何解决它?
【发布时间】:2015-03-08 00:21:49
【问题描述】:

我在我的 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 

说明结束

以上命令和cmets取自:

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 继续工作。

【问题讨论】:

  • 你为什么不直接安装 python27 包并保留它?
  • 它似乎没有工作。我按照我在网上找到的一些说明进行操作。但是我从 python -V 得到的结果显示 2.6.x 仍然安装。

标签: python linux python-2.7 redhat yum


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我在将 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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我不知道这对我有用!我“不小心”删除了一些 .so 文件并修复了它。
      • 那是删除所有到 python 的断开链接,然后添加一个新的软链接,将安装名称 python2.7 的安装名称“翻译”为您在执行中习惯运行的漂亮名称 python路径
      【解决方案4】:

      通过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(无论你使用哪个)在你的PATH 中/usr/local/bin 之前有/usr/bin

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

      在文件的最后。这样,/usr/bin/python 仍然链接到 Python 2.6,这是系统所期望的,当您在命令行运行 python 时,它将启动 2.7。您也不应该对 yum 脚本进行任何更改 - 在不了解您在做什么的情况下将 python 替换为 python2.6 并不是一个好主意。

      如果可能的话,我还建议将 Python 3.4 安装在 /usr/local/bin 中,其中二进制文件将按照约定命名为 python3。即使它安装在/usr/bin 中,您仍然可以选择运行python3python3.4 来指定您想要的版本。我在一个 CentOS 系统上工作,该系统安装了从 2.4 到 3.4 的每个版本的 Python,都在 /usr/local/bin 中(我确定这是手动完成的,而不是通过 yum),而 @ 中唯一的 python* 987654348@ 是 2.6。我找不到用于 RedHat 的 python3 包(我可能还不够努力),所以我建议从 source 构建最新版本(撰写本文时为 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() 函数的基本目录中的 setup.py(从第 449 行开始,一直延伸到第 1564 行)。安装 lib 和 -devel 包,以便获得必要的标头。

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

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-15
        • 2012-10-11
        • 1970-01-01
        • 2012-11-12
        • 1970-01-01
        • 2017-10-02
        • 2020-06-03
        相关资源
        最近更新 更多