[python] Linux에서 두 가지 버전의 Python. 2.7을 기본값으로 만드는 방법

내 linuxbox에 두 가지 버전의 Python이 있습니다.

$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>


$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct  8 2013, 15:53:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python

2.7을 기본 버전으로 만들려면 어떻게하면 2.7에 입력 python할 수 있습니까?



답변

실제로 기본 Python을 변경하고 싶지는 않을 것입니다.

배포판이에서 표준 시스템 Python을 설치했으며 /usr/bin,이 존재하고 #! /usr/bin/env python. 당신은 할 수 있습니다 일반적으로 2.7 파이썬 2.6 스크립트를 실행하는 도망,하지만 당신은 위험을 감수 하시겠습니까?

게다가, 원숭이를 사용 /usr/bin하면 패키지 관리자의 패키지 관리 기능이 손상 될 수 있습니다. 그리고 디렉토리의 순서를 바꾸면 PATH파이썬 외에도 많은 영향을받습니다. (사실, /usr/local/bin앞서있는 것이 더 일반적 /usr/bin이며 실제로 원하는 것일 수 있습니다. 그러나 다른 방법으로 가지고 있다면 아마도 그럴만 한 이유가있을 것입니다.)

그러나 .NET을 입력 할 때 시스템이 2.7을 실행하도록하기 위해 기본 Python을 변경할 필요 는 없습니다 python.


먼저 셸 별칭을 설정할 수 있습니다.

alias python=/usr/local/bin/python2.7

프롬프트에 입력하거나 ~/.bashrc변경 사항을 지속 하려면 입력 python하십시오. 이제 입력 하면 선택한 2.7이 실행되지만 시스템의 일부 프로그램이 스크립트를 실행하려고 할 /usr/bin/env python때 표준 2.6을 실행합니다.


또는 2.7 (또는 다른 프로젝트에 대해 별도의 venv)에서 가상 환경을 만들고 venv 내에서 작업을 수행하십시오.


답변

추가 /usr/local/bin귀하에게 PATH이전의 목록에서 환경 변수 /usr/bin.

일반적으로 이것은 쉘의 rc 파일에서 수행됩니다. 예를 들어 bash의 경우 다음과 같이 입력합니다 .bashrc.

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

이것은 쉘이 pythonin /usr/local/bin과 함께 가기 전에 먼저 in 을 찾습니다 /usr/bin.

(물론, 이것은 당신이 또한 /usr/local/bin/pythonpoint to가 필요하다는 것을 의미합니다 python2.7-만약 그것이 아직 없다면, 당신은 그것을 symlink해야 할 것입니다.)


답변

명령을 입력하십시오

which python

//output:
/usr/bin/python

cd /usr/bin
ls -l

여기에서 이와 같은 것을 볼 수 있습니다.

lrwxrwxrwx 1 root   root            9 Mar  7 17:04  python -> python2.7

기본 python2.7은 텍스트 ‘python’에 소프트 링크됩니다.

따라서 소프트 링크 파이썬을 제거하십시오.

sudo rm -r python

그런 다음 위의 명령을 다시 시도하십시오.

ls -l

소프트 링크가 제거 된 것을 볼 수 있습니다.

-rwxr-xr-x 1 root   root      3670448 Nov 12 20:01  python2.7

그런 다음 python3.6 용 새 소프트 링크를 만듭니다.

ln -s /usr/bin/python3.6 파이썬

그런 다음 python터미널 에서 명령 을 시도하십시오.

//output:
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux

입력 help, copyright, credits또는 license더 많은 정보를 얻을 수 있습니다.


답변

다음을 통해 현재 Python 버전을 확인합니다.

$ python --version

그런 다음 파이썬이 어떤 파일에 대한 심볼릭 링크인지 확인하십시오.

  $ ll /usr/bin/python

출력 예 :

 lrwxrwxrwx 1 root root 9 Jun 16  2014 /usr/bin/python -> python2.7*

사용 가능한 다른 Python 버전을 확인하십시오.

$ ls /usr/bin/python*

출력 예 :

/usr/bin/python     /usr/bin/python2.7-config  /usr/bin/python3.4         /usr/bin/python3.4m-config  /usr/bin/python3.6m         /usr/bin/python3m
/usr/bin/python2    /usr/bin/python2-config    /usr/bin/python3.4-config  /usr/bin/python3.6          /usr/bin/python3.6m-config  /usr/bin/python3m-config
/usr/bin/python2.7  /usr/bin/python3           /usr/bin/python3.4m        /usr/bin/python3.6-config   /usr/bin/python3-config     /usr/bin/python-config

현재 버전의 파이썬을 3.6 버전으로 변경하려면 ~ / .bashrc 파일을 편집하십시오.

vim ~/.bashrc

파일 끝에 아래 줄을 추가하고 저장하십시오.

alias python=/usr/local/bin/python3.6

Python 3.6 용 pip를 설치하려면

$ sudo apt-get install python3.6 python3.6-dev
$ sudo curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python3.6
$ sudo easy_install pip

성공하면 현재 버전의 pip를 확인하십시오.

$ pip3 -V

출력 예 :

pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.6)


답변

모든 OS는 기본 버전의 python과 함께 제공되며 / usr / bin에 있습니다. OS와 함께 제공되는 모든 스크립트 (예 : yum)는 / usr / bin에있는이 버전의 Python을 가리 킵니다. 새 버전의 python을 설치할 때 새 버전의 python에서 작동하지 않을 수있는 기존 스크립트를 깨뜨리고 싶지 않습니다.

이를 수행하는 올바른 방법은 Python을 대체 버전으로 설치하는 것입니다.

e.g.
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar xf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure --prefix=/usr/local/
make && make altinstall

이제 이렇게하면 yum과 같은 기존 스크립트가 / usr / bin / python에서 계속 작동합니다. 기본 파이썬 버전은 / usr / local / bin에 설치된 버전입니다. 즉, 파이썬을 입력하면 2.7.3을 얻게됩니다.

이것은 발생합니다. $ PATH 변수에는 usr / bin 앞에 / usr / local / bin이 있습니다.

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

python2.7이 여전히 기본 Python 버전으로 적용되지 않으면 수행해야합니다.

export PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"


답변

2.7 버전을 수동으로 설치했지만 2.6은 패키지에서 가져온 것 같습니다.

간단한 대답은 : python 패키지를 제거하는 것입니다.

더 복잡한 것은 다음과 같습니다. / usr / local에 수동으로 설치하지 마십시오. 2.7 버전으로 패키지를 빌드 한 다음 업그레이드하십시오.

패키지 처리는 사용하는 배포에 따라 다릅니다.


답변