Làm cách nào để cập nhật RPi3 của tôi lên Python 3.6?


39

Python 3.6 vừa xuất hiện. Tôi đã thử làm theo các hướng dẫn này để xây dựng từ một tarball, nhưng nó đã bị treo makelệnh, vì vậy tôi đã chấm dứt quá trình sau 20 phút hoặc lâu hơn.

Tôi cũng nhận thấy rằng trong khi ./configurelệnh đang diễn ra, một số kiểm tra đã kết thúc bằng "không." Tôi có cần chọn lại và cài đặt mọi thứ đã làm như vậy không?


Có lẽ bạn nên thử những điều sau: Askubfox.com/a/865569
Sagu

Câu trả lời:


34

Làm cách nào để cập nhật RPi3 của tôi lên Python 3.6?

Cho đến hôm nay, chỉ có cài đặt từ nguồn có sẵn. Các hướng dẫn bạn tham chiếu là chính xác cho phiên bản 3.6. Lặp lại:

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

Trên một Raspbian mới trên Raspberry Pi 3 với thẻ SD lớp 10 (YMMV):

  • configure mất hơn 2 phút
  • make mất khoảng 15 phút (nó tạo ra 8 cảnh báo cho thiết bị lỗi thời)
  • sudo make install mất khoảng 2 phút

Tôi có cần chọn lại và cài đặt mọi thứ đã làm như vậy không?

Trừ khi configuretập lệnh báo lỗi, câu trả lời là: không, tất nhiên là không.

configurethực hiện một loạt các kiểm tra và sử dụng các kết quả làm đầu vào để tạo Makefile. Các kết quả phụ thuộc vào kiến ​​trúc, tính năng phần cứng, v.v ... Đây không phải là những yêu cầu để biên dịch thành công. Một trong những kiểm tra đầu tiên là kiểm tra chính Python 3.6, mà kết quả chắc chắn sẽ có no.

make -j4 chỉ cần sử dụng tất cả 4 lõi rpi trong quá trình tạo (nhanh hơn nhiều)


Tôi chỉ thử điều này, nhưng nó mất mãi mãi. cấu hình mất 134 phút và đã chạy được hơn một giờ rồi. Mô hình RPi3, mâm xôi mới nhất. Bất cứ ý tưởng tại sao điều này là mất nhiều thời gian?
Bí ẩn

@Mystery thẻ SD của bạn có lẽ quá chậm. Nhận một cái gì đó từ một thương hiệu tốt (Sandisk, Samsung, v.v.) và đảm bảo rằng nó ít nhất là lớp 10 (Sandisk gọi đó là "Ultra").
Tarun

2
Tôi nghĩ rằng tôi sẽ bình luận về câu nói này, bạn cần nhớ cài đặt các gói cần thiết TRƯỚC KHI biên dịch và cài đặt, nếu không thì pip3 sẽ không hoạt động vì lỗi SSL (vâng, tôi đã phải chờ khoảng 2 giờ để cài đặt trên Zero W của mình ). Các gói bắt buộc có tại đây: tecadmin.net/install-python-3-6-ubfox-linuxmint
MortenMoulder

Đã gặp lỗi với Python 3.7.2 trong rb pi 3, đã được giải quyết bằng cách thực hiện sudo apt-get install libffi-devnhư được đề xuất trong câu trả lời này stackoverflow.com/a/48045929/2343488
juliocesar

24

Tôi rất khuyên bạn kiểm tra Berryconda quản lý gói bởi jjhelmus . Về cơ bản, đây là phiên bản cập nhật hơn của phiên bản armv7l của Miniconda và có sẵn gói Python 3.6 mà không cần phải biên dịch từ nguồn.

Ngoài ra, nếu bạn đã condacài đặt, bạn có thể thử chỉ cần thêm kênh rpi mặc định của Berryconda và cài đặt Python 3.6:

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

Chà, đơn giản hơn nhiều so với biên dịch từ nguồn. Cảm ơn!
Ekevoo

1
Để hoàn thiện, hãy theo dõi nó vớiconda create -n py36 python=3.6
brittohalloran

Berryconda, thật là một giải pháp tuyệt vời!
DJK

@brittohaloran Theo nhận xét này, cài đặt Python 3.6.6 trong basemôi trường conda , vì vậy bạn có thể muốn đặt tên cho env đã tạo của mình một cái gì đó mô tả về những gì bạn dự định đặt vào env đó (một cái gì đó khác py36).
hobs

Hoạt động như một sự quyến rũ, giải pháp tốt nhất và đơn giản nhất
Cấp

12

Để xây dựng nhanh trong Raspberry Pi 3, hãy sử dụng tham số -j4 trong lệnh make:

make -j4

3
Có vẻ khá nhanh! Một hoặc hai phút so với 15 phút mà không có -j4 !!!
JxAxMxIxN

1
Điều đó làm gì?
timbram

2
Param -j4 cho biết bắt đầu 4 công việc song song, do đó nó có thể sử dụng cả 4 lõi CPU cùng một lúc.
hdiogenes

4

Tôi đang sử dụng RPi2 và tôi đã quản lý thành công theo quy trình được đề xuất để cài đặt python3.6. Nhưng như được chỉ ra bởi một người bình luận, tôi gặp vấn đề với ssl khi tôi cố gắng cài đặt các gói với pip .

Tôi đã học được từ một chủ đề khác về chủ đề khác mà tôi cần cài đặt ssl trước khi tôi biên dịch.

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 cài đặt libatlas-base-dev gfortran

cài đặt pip python3.6 -m - người dùng scipy

việc cài đặt scipy với pip mất rất nhiều thời gian (giờ) và tôi đang tìm kiếm một giải pháp. Tôi sẽ quay lại vấn đề này. phần còn lại của cài đặt hiện đang bị giữ.

cài đặt pip python3.6 -m - người dùng matplotlib

cài đặt pip python3.6 -m --user ipython

cài đặt pip python3.6 -m - jupyter

cài đặt pip python3.6 -m - gấu trúc người dùng

cài đặt pip python3.6 -m - người dùng sympy

cài đặt pip python3.6 -m - mũi người dùng

Mặt trái của việc phải biên dịch python3.6 lần thứ hai là biên dịch nhanh hơn nhiều lần thứ hai. Mặt khác, phải mất một thời gian dài để cài đặt numpy, và đó là lý do tại sao tôi chia ra cài đặt gói.


Việc cài đặt numpy và scipy là một trở ngại của chính nó và có lẽ nên được thực hiện từ nguồn, không phải từ pip, do phụ thuộc vào nền tảng cụ thể bên ngoài. Xem câu trả lời của tôi cho vấn đề ở đây: raspberrypi.stackexchange.com/a/77856/79467 . Mặt khác, cài đặt không thực sự nhanh hơn theo cách này, nhưng về cơ bản, tốc độ thời gian chạy sẽ rất cao.
teoguso

1

Bạn cần phải cài đặt tất cả các phụ thuộc. Tất cả những thông báo cảnh báo, thông báo lỗi và kiểm tra "không" cần được xử lý.


Làm thế nào để bạn giải quyết ví dụ này : checking Solaris LFS bug... no, hoặc checking getaddrinfo bug... no, hoặc checking for the Android API level... not Android? Và quan trọng nhất: làm thế nào để bạn giải quyết vấn đề này checking for python3.6... nokhi cài đặt Python 3.6?
techraf

@Techraf Những cái cụ thể là ok. Đó là kiểm tra những thứ cần sửa chữa, không phải phụ thuộc. Cái cuối cùng chỉ kiểm tra xem bạn đã có Python 3.6 chưa trước khi thử cài đặt nó.
tlhIngan

Vì vậy, mặc dù bạn đã đề xuất ' Tất cả những kiểm tra [] "không" cần được xử lý ', những kiểm tra cụ thể đó vẫn ổn. Làm thế nào tôi có thể biết cái nào là ok, sau đó? Tôi đã nhận được 170 "số". Là : checking for conio.h... no, hoặc checking for pthread_init... no, hoặc checking for libutil.h... nocụ thể và ok, hoặc cần được giải quyết?
techraf

Có vẻ như nó đang kiểm tra các tệp tiêu đề C và các thành phần có thể đã được cài đặt. Trong trường hợp này, tôi nghĩ rằng bạn có thể bỏ qua "kiểm tra", nó chỉ giúp trình biên dịch kết hợp tệp thực hiện, như được giải thích trong một câu trả lời khác. Lỗi và cảnh báo cần được giải quyết cho chắc chắn, nhưng những kiểm tra này là tốt.
tlhIngan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.