우분투 시스템에서 파이썬 업데이트


78

Linux 상자에서 Python 빌드를 업데이트하고 싶지만 수행 방법을 알고있는 유일한 방법은 현재 버전을 제거하고 새 버전을 설치하는 것입니다. 시스템이 이미 최신 상태입니다 (어제 업데이트했습니다). 같은 명령 줄에서 특정 프로그램을 업데이트하는 방법이 있는지 알고 싶었습니다 sudo apt-get update <program-name>. 나는이 명령이 존재하지 않는다는 것을 알고 있지만 동등한 것이기를 바라고 있습니다.


시스템이 최신 상태라면 시스템의 Python도 (저장소에 따라) 있습니다. 내가 잘못?
cYrus

답변:


64

다른 사람들이 이미 언급했듯이 bare sudo apt-get install package는 사용 가능한 최신 버전을 설치하고 필요한 경우 이전 버전을 대체합니다.

그러나 일부 소프트웨어 (Python)는 상황이 약간 다릅니다. 매우 크고 호환이 불가능한 일부 주요 버전 에는 자체 패키지가 있습니다. 예를 들어 Python 2.6 , Python 2.7 , Python 3.1은 모두 우분투에서 별도의 패키지로 제공됩니다.

Ubuntu 정책 중 하나가 최종 사용자 소프트웨어를 작성하기 위해 Python을 광범위하게 사용하는 것이 특히 중요합니다. 실제로 시스템의 상당 부분이 Python 으로 작성되었습니다. 현재 코드는 Python 2.6에서 실행되므로이 ​​버전은 설치시 기본값입니다. 비 호환성이 존재하기 때문에 코드 Python 2.7에서 쉽게 실행되지 않습니다. 시스템을 Python 2.7로 전환하려면 모든 스크립트를 업데이트하고 다시 테스트하는 작업이 필요합니다. 이것은 쉽게 할 수 없습니다. 즉, 시스템을 Python 2.7로 "전환"하고 이전 버전을 삭제할 수는 없습니다.

그러나. 시스템의 멋진 장비에 신경 쓰지 않고 최신 Python이 필요한 경우 장애물을 참조하십시오. 가서 sudo apt-get install python3용감 3.X의 파이썬 코드; shebang 라인을 python3사용 하여 스크립트를 시작 하고 사용하는 것을 #!/usr/bin/env python3잊지 마십시오 .


6
비하인드 작업에 대한 훌륭한 디테일.
efficiencyIsBliss

16
sudo apt-get install python 3.3.3

이것은 다른 버전의 파이썬 (3.3.3) 용이며 해당 버전 번호를 사용해야합니다.


4
파이썬과 버전 사이에 공백이 없어야한다고 생각합니다. sudo apt-get install python3.6나를 위해 일했지만 어떤 식 으로든 파이썬 3.5에는 영향을 미치지 않습니다.
GUI Junkie

sudo apt-get install python 3.6.1 > Note, selecting 'libghc-unix-time-dev-0.3.6-1b8cf' for regex '3.6.1' ... 분리 된 인수는 apt에게 여러 패키지를 설치하라고 알려줍니다
Clancy Hood

3
내 파이썬 버전 번호를 설치 한 후 동일합니까? 이유가 무엇입니까?
Ramesh Pareek

이 방법을 사용했지만 설치 위치 (예 : 3.7 쉘을 여는 방법)를 찾을 수 없습니다. @RameshPareek 이것은 당신의 문제 일 수도 있습니다. / usr / bin에없는 것 같습니다. python is already the newest version (2.7.12-1~16.04). python set to manually installed.어떤 아이디어?
Bjorks 최고의 팬

10
sudo apt-get install python3.6

이것은 파이썬 2와 함께 파이썬 3을 리눅스에 설치합니다. 파이썬 3에 액세스하려면 터미널을 연 후 입력하십시오.

python3

2
이것은 다른 답변을 복제하고 새로운 내용을 추가하지 않습니다. 실제로 새로운 내용이 없다면 답변을 올리지 마십시오.
DavidPostill

3
죄송합니다. 새 명령을 얻기 위해 명령을 작성하고 싶었습니다.
G-Ox7cd

6
내가 실행하면E: Unable to locate package python3.6 E: Couldn't find any package by glob 'python3.6' E: Couldn't find any package by regex 'python3.6'
Kajsa

1
sudo add-apt-repository ppa : deadsnakes / ppa -y && sudo apt-get 업데이트
ski_squaw

E: Unable to locate package python3.6
Dims

4

당신은 sudo apt-get update(실제 명령이지만 원하는 것을하지는 않습니다) 와 같은 명령에 가깝습니다 .

파이썬 및 기타 설치된 모든 것을 업그레이드하려면 다음 명령을 수행하십시오.

sudo apt-get upgrade

고맙지 만 업데이트 명령에 대해 이미 알고 있었기 때문에 시스템이 이미 최신 상태라는 사실을 게시했습니다. 특정 앱을 대상으로 할 수있는 명령을 찾고 싶었습니다.
efficiencyIsBliss

apt는 최신 정보를 업그레이드하지 않았으므로 차이를 만들지 않습니다. p
Journeyman Geek

OP는 구체적으로 파이썬을 업데이트하려고합니다 . 그들이 가지고있는 모든 패키지를 업데이트하라고 말하는 것은 게으르고 나쁜 조언입니다.
Przemek D


3

2.7.11 + t0 2.7.12와 같은 마이너 버전의 파이썬 패키지 만 업그레이드하려는 경우 sudo apt-get install python2.7해야합니다


2

pyenv는 당신에게 좋은 옵션 일 수 있습니다 : https://github.com/yyuu/pyenv


@ulidtko의 답변 과 관련 하여 시스템 파이썬을 완전히 대체 할 수있는 대안은 원하는 파이썬 버전으로 격리 된 환경을 사용하는 것일 수 있습니다. 이것은 "가상 환경"과 비슷하지만 파이썬 자체입니다. 과거에는 파이썬 2.6에서 실행되는 레거시 프로젝트뿐만 아니라 레거시 버전의 파이썬에서 python3으로 업그레이드 할 때 이것을 사용했습니다.


이 영역에 익숙하지 않지만 이것이 어떻게 문제를 해결하고 문제를 해결하는지 설명 할 수 있습니까?
벤 N

1
@ulidtko의 답변 ( superuser.com/a/241903/152143 )과 관련하여 시스템 파이썬을 대체하는 가능한 대안은 원하는 파이썬 버전으로 고립 된 환경을 사용하는 것입니다. 이것은 "가상 환경"과 비슷하지만 파이썬 자체입니다. 과거에는 파이썬 2.6에서 실행되는 레거시 프로젝트뿐만 아니라 레거시 버전의 파이썬에서 python3으로 업그레이드 할 때 이것을 사용했습니다.
nicefinly

1
apt-get install python

나는 이것이 효과가 있다고 믿는다. 저장소의 적절한 패키지 이름과 일치하도록 'python'을 변경해야합니다.


1

우리 모두는 파이썬이 3.5 버전과 함께 제공된다는 것을 알고 있습니다. 따라서 Python 2.7 (기본적으로 Ubuntu 16.04에 있음)을 Python 3.5로 업데이트하는 것은 매우 간단합니다.

다음 단계를 수행하십시오.

  1. 터미널을 엽니 다.
  2. sudo 명령을 사용하여 루트 사용자가 되십시오.
  3. 아래 코드를 사용하여 Python 2.7을 3.5로 업데이트하십시오.

    sudo apt-get 설치 python3.5

  4. 당신은 당신의 허가를 요구하고, 옵션 Y를 제공하십시오.

  5. 프로세스가 완료 될 때까지 기다리십시오.
  6. 명령을 사용하여 화면을 지우십시오 clear
  7. 아래 명령으로 파이썬 버전을 확인하십시오.

    파이썬-버전


1
앞으로 올바른 형식을 사용하고 "도움이 될 것입니다."와 같은 문구를 피하십시오. 그들은 단지 소음입니다. 질문에 대답함으로써, 당신이 도움이되는 것으로 질문에 대답하려고 시도하는 것으로 가정합니다. 답을 살펴보고 해결하지 않은 사소한 문법 오류를 수정하고 프로세스의 스크린 샷을 제공해야합니다. 나는 이번에 당신을 위해 형식을 고쳤습니다. 다시는하지 않을 것입니다. 저자들은 자신의 답변과 질문을 고쳐야합니다.
Ramhound

그리고 그것은 간단하지 않습니다. 이것은 심볼릭 링크를 올바르게 업데이트하지 않으므로 3.4 및 3.5가 나란히 끝납니다. Python2는 일반적으로 python3과 나란히 있습니다. Python2를 Python3으로 업그레이드하지 않고 작업을 마이그레이션합니다.
mckenzm

0

LTS 버전을 실행하는 단일 경우, 파이썬은 2.7.10 대신 2.7.5와 같은 부 버전으로 뒤처 질 수 있습니다.

한 가지 가능성은 시스템업그레이드하는 것입니다 .

  • 설정 prompt=normal에서/etc/update-manager/release-upgrades
  • 시스템을 업그레이드
    • 명령 행에서, sudo do-release-upgrade업그레이드 관리자가 최신 (= LTS가 아닌) 버전으로 업그레이드하기 위해 작업을 수행하도록 입력 할 수 있습니다 .
    • GUI 솔루션은 Update Manager를 사용합니다.

업그레이드시 항상 그렇듯이 릴리스 노트를 살펴보십시오 . 업그레이드로 인해 시스템이 손상 될 수 있으므로 @ Gino 's comment를 참조하십시오 .


야, 난 당신의 변화를 시도하고 내 우분투 14.04 시스템을 ! 기본적으로 14.04에서 Ubuntu 15로 업데이트하려고 시도했지만 성공적으로 수행 할 수 없었으므로 그래픽 로그인이 더 이상 작동하지 않는 반쯤 상태로 시스템을 남겨 두었습니다. 다시 같은 그래픽 로그인으로 돌아갑니다. 방금 지난 시간 이상 내 컴퓨터에 Ubuntu 14.04를 다시 설치하여 취한 솔루션 중단을 해결했습니다 .
지노

@ 지노 : 의견을 보내 주셔서 감사합니다. askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… 및 릴리스 정보를 살펴 보셨습니까 ? "AMD의 fglrx 드라이버"에 문제가 있습니다. 다른 도움이 필요하십니까?
serv-inc

정상적인 안전 점검을 우회하여 비 LTS 버전으로 업그레이드 할 수 있다는 제안은 위험에 처해 있다고 생각합니다. 오늘날까지 진단 가능한 오류 메시지를 표시하지 않았기 때문에 업그레이드가 실패한 이유를 모르겠습니다. 대신, 나는 더 이상 사용할 수없는 시스템으로 끝났다. 올바르게 기억한다면 대부분의 시스템을 복원 할 수있는 특정 설정으로 Ubuntu 설치를 다시 실행했습니다. 그리고 부수적으로, 나는 전문 프로그래머이기 때문에 일반적으로 리눅스 시스템에 대한 나의 길을 알고 있습니다.
지노

@ 지노 : 이것은 LTS에서 비 LTS로 전환하는 표준 절차 인 것 같습니다. 새로운 릴리스의 인식 수준을 '변경합니다. 이를 "지원되는"(일반) 릴리스, "LTS (long term only)"릴리스 또는 "nothing"(주요 업그레이드 없음)으로 설정할 수 있습니다 . " '인용문은 askubuntu.com/questions/240160/…을 참조하십시오 . 시스템의 업그레이드 관리자를 사용하지만 불행히도 (기본) 업그레이드는 작동하지 않습니다. 버그가있는 그래픽 드라이버 때문일 수 있습니다 (위 링크 참조)
serv-inc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.