이 기사에는 다음이 포함됩니다.이것문제는 내 시스템에 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
그러나 두 /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
이를 활성화하려면 셸에서 해당 환경을 가져와야 합니다.
. /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을 다시 사용할 수 있습니다.