CentOs7 Python 3.4安装方法

CentOs7 Python 3.4安装方法

这篇文章涉及问题是我被要求解释如何在我的系统上安装 python3。我试图在我的系统上安装 python3 以用于开发目的。一路上出了点问题,现在我的系统无法识别默认的 python 安装或 python 3.4 安装。另外,像 yum 这样的应用程序也被破坏了。

sudo apt-get install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev
sudo yum install scl-utils
sudo wget https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm
sudo yum install rhscl-python33-*.noarch.rpm

另外,我附加并后来从 .bashrc 文件中删除的行是

alias python='/opt/rh/python33/root/usr/bin/python3.3'

回想起来,我认为它应该是“python3.4”,但无论哪种方式,我可能错误地认为简单地注释掉这一行就会消除它的效果。

编辑:另外,如果没记错的话,apt-get 是无关紧要的,因为我试图以错误的方式安装它,所以我真的不应该将它包含在这里。

编辑添加命令的输出:

只需输入“python”即可返回:

-bash: python: command not found 

which python给出:

/usr/bin/which: no python in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin) 

/usr/bin然而,和中都有一个 python 安装/usr/sbin

alternatives --list | grep -i python产量:

python  auto  /usr/bin/python3.4

-v python什么也不返回。

type -a python给出:

-bash: type: python: not found

declare -p PATH输出

declare -x PATH="/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/myusername/.local/‌​bin:/home/myusername/bin"

我似乎确实有/usr/bin/python

$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Jun 25 15:39 /usr/bin/python -> /etc/alternatives/python 

但:

$ ls -l $(readlink -f /usr/bin/python)给出:

ls: cannot access /usr/bin/python3.4: No such file or directory

我不知道这是否相关,但/etc/alternatives/python在终端中看起来是粉红色的。

ls -l /usr/local/bin/` prints `-rwxr-xr-x 1 root root   101 Sep  4  2014 2to3-3.4
-rwxr-xr-x 1 root root   241 Sep  4  2014 easy_install-3.4
-rwxr-xr-x 1 root root    99 Sep  4  2014 idle3.4
-rwxr-xr-x 1 root root   213 Sep  4  2014 pip3.4
-rwxr-xr-x 1 root root    84 Sep  4  2014 pydoc3.4
-rwxr-xr-x 2 root root 17544 Sep  4  2014 python3.4
-rwxr-xr-x 2 root root 17544 Sep  4  2014 python3.4m
-rwxr-xr-x 1 root root  3066 Sep  4  2014 python3.4m-config
-rwxr-xr-x 1 root root   236 Sep  4  2014 pyvenv-3.4

还,

/opt/rh/python33/root/usr/bin/python3.3

返回:

/opt/rh/python33/root/usr/bin/python3.3: error while loading shared libraries: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory

答案1

您的系统处于不一致的状态,因为您没有将系统使用的 Python 2.7(CentOS7 上的 /usr/bin/python)与编程/脚本等替代用途的 Python 3.5 分开。 CentOS 7 依赖于 /usr/bin/python 是 python2.7,最重要的用例是 Yum 包管理。

在干净的 CentOS 7 系统上,您可以从以下位置安装 Python 3.5软件合集和:

sudo yum install -y centos-release-scl
sudo yum install -y rh-python35

要启用它,您需要在 shell 中获取其环境:

. /opt/rh/rh-python35/enable

然后使用python3以可移植的方式运行脚本。 (注意:/opt/rh/rh-python35/root/bin/python是一个不幸的符号链接。)

启用运行配置还会创建环境变量,例如 python3.5 查找共享库所需的 LD_LIBRARY_PATH。

为了摆脱系统混乱的局面,我首先要从 /usr/bin 中删除指向 /etc/alternatives 的 python 符号链接。

确保 /usr/bin/python2.7 是 ELF LSB 可执行文件。重新创建所需的符号链接: ln -s /usr/bin/python2.7 /usr/bin/python2 ln -s /usr/bin/python2 /usr/bin/python

一旦这些工作成功,您应该能够再次使用 Yum。

相关内容