RPi3를 Python 3.6으로 업데이트하려면 어떻게합니까?


39

파이썬 3.6이 나왔습니다. 나는 이 지침 을 따라 tarball에서 빌드를 시도했지만 make명령 에 매달 리므로 20 분 정도 지나면 프로세스를 종료했습니다.

또한 ./configure명령이 진행 되는 동안 많은 검사가 "아니오"로 끝났다 는 것을 알았 습니다. 이러한 작업을 모두 수행하고 설치해야합니까?


: 당신은 아마 이러한 시도해야 askubuntu.com/a/865569을
Sagu

답변:


34

RPi3를 Python 3.6으로 업데이트하려면 어떻게합니까?

현재는 소스에서 설치 만 가능합니다. 참조한 지시 사항은 버전 3.6에 적합합니다. 반복하려면

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make -j4
sudo make install

클래스 10 SD 카드 (YMMV)가있는 Raspberry Pi 3의 새로운 Raspbian :

  • configure 2 분 이상 소요
  • make 약 15 분 소요 (stderr에 8 번 경고 발생)
  • sudo make install 약 2 분 소요

이러한 작업을 모두 수행하고 설치해야합니까?

configure스크립트가 오류를보고 하지 않으면 대답은 아니오입니다. 물론 아닙니다.

configure일련의 검사를 수행하고 결과를 입력으로 사용하여을 만듭니다 Makefile. 결과는 아키텍처, 하드웨어 기능 등에 따라 다릅니다. 성공적인 컴파일을위한 요구 사항은 아닙니다. 첫 번째 검사 중 하나는 Python 3.6 자체 검사이며 그 결과는 확실합니다 no.

make -j4 make 프로세스에서 4 개의 rpi 코어를 모두 사용하기 만하면됩니다 (훨씬 빠름).


방금 시도했지만 영원히 가져갔습니다. configure에 134 분이 걸렸으며 make는 1 시간 이상 실행되었습니다. 최신 라즈 비안 모델 RPi3. 왜 이렇게 오래 걸리는지 아십니까?
Mystery

@ 미스터리 SD 카드가 너무 느릴 수 있습니다. 좋은 브랜드 (Sandisk, Samsung 등)에서 무언가를 얻고 적어도 10 등급 (Sandisk는 "Ultra"라고 부릅니다)인지 확인하십시오.
Tarun

2
이 말에 대해 의견을 말하고 싶습니다. 컴파일하고 설치하기 전에 필요한 패키지를 설치해야한다는 것을 기억해야합니다. 그렇지 않으면 SSL 오류로 인해 pip3이 작동하지 않습니다 (예, Zero W의 설치에서 2 시간 정도 기다려야했습니다 ). 필요한 패키지는 다음과 같습니다. tecadmin.net/install-python-3-6-ubuntu-linuxmint
MortenMoulder

rb pi 3의 Python 3.7.2에서 오류가 발생 sudo apt-get install libffi-dev했습니다.이 답변에서 제안 된대로 실행 하여 해결하십시오. stackoverflow.com/a/48045929/2343488
juliocesar February

24

내가보기 엔 당신이 체크 아웃하는 것이 좋습니다 Berryconda에 의해 패키지 관리자를 jjhelmus . 기본적으로 armv7l 버전의 Miniconda 의 최신 버전이며 소스에서 컴파일하지 않고도 Python 3.6 패키지를 사용할 수 있습니다.

또는 이미 conda설치 한 경우 Berryconda의 기본 rpi 채널을 추가 하고 Python 3.6을 설치하면됩니다.

conda config --add channels rpi
conda install python=3.6

음, 그것은 소스에서 컴파일하는 것보다 훨씬 간단합니다. 감사!
Ekevoo 2016 년

1
완성도를 높이기 위해conda create -n py36 python=3.6
brittohalloran의

Berryconda, 얼마나 훌륭한 솔루션입니까!
DJK

@brittohaloran이 의견에 따르면 이것은 conda base환경 에 Python 3.6.6을 설치 하므로 생성 된 env에 해당 env에 넣을 계획을 설명하는 이름을 지정하고 싶을 것입니다 (이외의 것 py36).
호브

매력적이고 가장 간단한 솔루션처럼 작동
Grant

12

Raspberry Pi 3에서 빠른 빌드를하려면 make 명령에서 -j4 매개 변수를 사용하십시오.

make -j4

3
꽤 빨리 보였다! 1 분 또는 2 분 대 -j4없는 15 분 이상 !!!
JxAxMxIxN

1
그 매개 변수는 무엇을합니까?
timbram

2
param -j4는 make가 4 개의 병렬 작업을 시작하도록 지시하므로 동시에 4 개의 CPU 코어를 모두 사용할 수 있습니다.
hdiogenes

4

RPi2를 사용하고 있으며 제안 된 절차에 따라 python3.6을 성공적으로 설치했습니다. 그러나 주석가가 지적했듯이 pip로 패키지설치 하려고 할 때 ssl 문제가 발생했습니다 .

다른 주제의 다른 스레드에서 컴파일하기 전에 SSL을 설치해야한다는 것을 알았습니다 .

sudo apt-get install libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make
sudo make install
python3.6 -V
python3.6 -m pip install --upgrade pip
python3.6 -m pip install --user numpy 
sudo apt-get update
sudo apt-get upgrade

sudo apt-get 설치 libatlas-base-dev gfortran

python3.6 -m pip install --user scipy

pip로 scipy를 설치하는 데 시간이 오래 걸리며 해결책을 찾고 있습니다. 다시 돌아가겠습니다. 나머지 설치는 이제 보류됩니다.

python3.6 -m pip install --user matplotlib

python3.6 -m pip install --user ipython

python3.6 -m pip install --user jupyter

python3.6 -m pip install --user pandas

python3.6 -m pip install --user sympy

python3.6 -m pip install --user nose

python3.6을 두 번째로 컴파일 해야하는 단점은 두 번째로 훨씬 빠른 컴파일이었습니다. 반면에 numpy를 설치하는 데 시간이 오래 걸리므로 패키지 설치를 분할해야합니다.


numpy 및 scipy 설치는 그 자체로 장애물이며 외부 플랫폼 별 종속성으로 인해 pip가 아닌 소스에서 수행해야합니다. raspberrypi.stackexchange.com/a/77856/79467 에서 문제에 대한 내 대답을 참조하십시오 . 반면에 설치는이 방법으로 실제로 더 빠르지는 않지만 런타임 속도는 상당히 빠릅니다.
teoguso

1

모든 종속성을 설치해야합니다. 이러한 모든 경고 메시지, 오류 메시지 및 "아니오"검사를 수행해야합니다.


예를 들어 다음을 어떻게 처리합니까 : checking Solaris LFS bug... no, 또는 checking getaddrinfo bug... no, 또는 checking for the Android API level... not Android? 그리고 가장 중요한 것은 checking for python3.6... noPython 3.6을 설치할 때 어떻게 해결 합니까?
techraf

@techraf이 특정 것들은 괜찮습니다. 종속성이 아닌 수정해야 할 사항을 확인하고 있습니다. 마지막은 설치하기 전에 Python 3.6이 있는지 확인하는 것입니다.
tlhIngan

따라서 ' 모든 해당 [] "아니오"검사를 수행해야 한다고 제안했지만 해당 특정 검사는 정상입니다. 그렇다면 어느 것이 정상인지 어떻게 알 수 있습니까? 나는 170 "아니오"를 얻었다. 위치 : checking for conio.h... no하거나 checking for pthread_init... no, 또는 checking for libutil.h... no특정 앤 확인, 또는 필요 - 투 - 해결?
techraf

이미 설치되어있을 수있는 C 헤더 파일 및 구성 요소를 확인하는 것처럼 들립니다. 이 경우 "확인"을 무시할 수 있다고 생각합니다. 다른 답변에서 설명한 것처럼 컴파일러가 makefile을 구성하는 데 도움이됩니다. 오류 및 경고를 반드시 해결해야하지만 이러한 검사는 문제가 없습니다.
tlhIngan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.