ฉันจะอัพเดต RPi3 เป็น Python 3.6 ได้อย่างไร


39

Python 3.6 เพิ่งออกมา ฉันพยายามทำตามคำแนะนำเหล่านี้เพื่อสร้างจาก tarball แต่มันก็วางสายกับmakeคำสั่งดังนั้นฉันยุติกระบวนการหลังจาก 20 นาทีหรือมากกว่านั้น

ฉันยังสังเกตเห็นว่าในขณะที่./configureคำสั่งกำลังดำเนินอยู่เช็คจำนวนหนึ่งจบลงด้วย "no's" ฉันจำเป็นต้องเลือกกลับและติดตั้งทุกสิ่งที่ทำเช่นนี้หรือไม่


คุณควรลองสิ่งเหล่านี้: 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

บน Raspbian สด ๆ บน Raspberry Pi 3 พร้อมการ์ด SD ระดับ 10 (YMMV):

  • configure ใช้เวลา 2 นาที
  • make ใช้เวลาประมาณ 15 นาที (จะสร้างคำเตือนถึง stderr 8 รายการ)
  • sudo make install ใช้เวลาประมาณ 2 นาที

ฉันจำเป็นต้องเลือกกลับและติดตั้งทุกสิ่งที่ทำเช่นนี้หรือไม่

ยกเว้นว่าconfigureสคริปต์รายงานข้อผิดพลาดคำตอบคือ: ไม่แน่นอน

configureดำเนินการชุดของการตรวจสอบและใช้ผลเป็น input Makefileในการสร้าง ผลลัพธ์ขึ้นอยู่กับสถาปัตยกรรมคุณสมบัติฮาร์ดแวร์ ฯลฯ สิ่งเหล่านี้ไม่ใช่ข้อกำหนดสำหรับการคอมไพล์สำเร็จ หนึ่งในการตรวจสอบครั้งแรกคือการตรวจสอบหลาม 3.6 noตัวเองซึ่งผลที่ตามมาอย่างแน่นอนจะเป็น

make -j4 ใช้แกนประมวลผล 4 rpi ทั้งหมดในกระบวนการสร้าง (เร็วกว่ามาก)


ฉันแค่ลองทำสิ่งนี้ แต่มันใช้ไปตลอดกาล การกำหนดค่าใช้เวลา 134 นาทีและทำให้การเรียกใช้มานานกว่าหนึ่งชั่วโมงแล้ว รุ่น RPi3 ราสเบียนล่าสุด ความคิดใด ๆ ที่ว่าทำไมมันใช้เวลานานขนาดนี้?
ความลึกลับ

@Messtery SD card ของคุณอาจช้าเกินไป รับบางอย่างจากแบรนด์ที่ดี (Sandisk, Samsung และอื่น ๆ ) และตรวจสอบให้แน่ใจว่าเป็นคลาส 10 อย่างน้อย (Sandisk เรียกมันว่า "Ultra")
Tarun

2
คิดว่าฉันจะแสดงความคิดเห็นในคำพูดนี้คุณต้องจำไว้ในการติดตั้งแพคเกจที่จำเป็นก่อนที่จะรวบรวมและติดตั้งมิฉะนั้น pip3 จะไม่ทำงานเนื่องจากข้อผิดพลาด SSL (ใช่ฉันต้องรอประมาณ 2 ชั่วโมงในการติดตั้งบน Zero W ) แพ็คเกจที่ต้องการอยู่ที่นี่: tecadmin.net/install-python-3-6-ubuntu-linuxmint
MortenMoulder

มีข้อผิดพลาดกับ Python 3.7.2 ใน rb pi 3 แก้ไขได้โดยการดำเนินการsudo apt-get install libffi-devตามที่แนะนำในคำตอบนี้stackoverflow.com/a/48045929/2343488
juliocesar

24

ผมขอแนะนำให้คุณตรวจสอบBerrycondaผู้จัดการแพคเกจโดยjjhelmus โดยพื้นฐานแล้วเป็นเวอร์ชันMiniconda รุ่น armv7l ที่ทันสมัยมากขึ้นและมีแพ็คเกจ Python 3.6 ที่มีอยู่โดยไม่จำเป็นต้องรวบรวมจากแหล่งที่มา

หรือหากคุณcondaติดตั้งไว้แล้วคุณสามารถลองเพิ่มแชนเนล rpiเริ่มต้นของ Berryconda และติดตั้ง Python 3.6:

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

มันง่ายกว่าการรวบรวมจากแหล่งที่มา ขอบคุณ!
Ekevoo

1
เพื่อความสมบูรณ์ให้ติดตามด้วยconda create -n py36 python=3.6
brittohalloran

Berryconda ช่างเป็นทางออกที่ยอดเยี่ยม!
DJK

@brittohaloran ในความคิดเห็นนี้จะติดตั้ง Python 3.6.6 ในbaseสภาพแวดล้อมconda ดังนั้นคุณอาจต้องการตั้งชื่อ env ของคุณเพื่ออธิบายสิ่งที่คุณวางแผนที่จะใส่ env (อย่างอื่นpy36)
เตา

ทำงานเหมือนเสน่ห์ที่ดีที่สุดและง่ายที่สุดในการแก้ปัญหา
แกรนท์

12

สำหรับการสร้างอย่างรวดเร็วใน Raspberry Pi 3 ให้ใช้ -j4 param ในคำสั่ง make:

make -j4

3
ดูเหมือนจะเร็วมาก! หนึ่งหรือสองนาทีกับ 15+ นาทีโดยไม่มี -j4 !!!
JxAxMxIxN

1
พารามิเตอร์ที่ทำอะไร
timbram

2
param -j4 บอกให้ทำการเริ่มต้น 4 งานแบบขนานดังนั้นจึงสามารถใช้คอร์ทั้ง 4 คอร์ได้ในเวลาเดียวกัน
hdiogenes

4

ฉันใช้ RPi2 และฉันประสบความสำเร็จในการจัดการตามขั้นตอนที่แนะนำเพื่อติดตั้ง python3.6 แต่ในขณะที่ออกมาชี้โดยผู้แสดงความคิดเห็นผมวิ่งเข้าไปในปัญหาเกี่ยวกับ 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 install gatran libatlas-base-dev

python3.6 -m pip install - ผู้ใช้ scipy

การติดตั้ง scipy ด้วย pip ใช้เวลานานมาก (ชั่วโมง) และฉันกำลังมองหาวิธีแก้ปัญหา ฉันจะกลับไปที่นี้ ส่วนที่เหลือของการติดตั้งจะถูกพักไว้

python3.6 -m pip install - ผู้ใช้ matplotlib

python3.6 -m pip install --user ipython

python3.6 -m pip install - ผู้ใช้ jupyter

python3.6 -m pip install --user pandas

python3.6 -m pip install - ผู้ใช้ sympy

python3.6 -m pip install - จมูกผู้ใช้

ข้อเสียของการรวบรวม 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... noเมื่อติดตั้ง Python 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.