如何将RPi3更新为Python 3.6?


39

Python 3.6刚刚问世。我尝试按照以下说明从tarball进行构建,但是由于挂起了make命令,因此在20分钟左右后终止了该过程。

我还注意到,在执行./configure命令时,许多检查都以“否”结束。我需要重新整理一下并安装执行此操作的所有内容吗?


您可能应该尝试以下方法:askubuntu.com/a/865569
Sagu

Answers:


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 只需在制作过程中使用所有4个rpi内核(快得多)


我只是试过了,但是它永远长存。configure花了134分钟,make已经运行了一个多小时。型号RPi3,最新的树莓派。知道为什么要花这么长时间吗?
奥秘

@神秘事件SD卡可能太慢了。从一个好的品牌(Sandisk,Samsung等)那里获取东西,并确保至少达到10级(Sandisk称其为“ Ultra”)。
塔伦(Tarun)

2
以为我会说一句话,您需要记住在编译和安装之前安装必需的软件包,否则pip3会因为SSL错误而无法正常工作(是的,我必须在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

24

我强烈建议你检查出Berryconda通过包管理器jjhelmus。它基本上是Miniconda的armv7l版本的最新版本,并且具有可用的Python 3.6软件包,而无需从源代码进行编译。

另外,如果您已经conda安装了,则可以尝试仅添加Berryconda的默认rpi通道并安装Python 3.6:

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

好吧,这比从源代码编译要简单得多。谢谢!
Ekevoo

1
为了完整conda create -n py36 python=3.6
起见

Berryconda,多么好的解决方案!
DJK '18年

@brittohaloran截至本文注释之处,它已在conda base环境中安装了Python 3.6.6 ,因此您可能想为创建的env命名,以描述您计划放入该env的内容(不是py36)。
滚刀

就像一个魅力,最佳和最简单的解决方案一样工作
授予


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 install libatlas-base-dev gfortran

python3.6 -m pip安装--user scipy

用pip安装scipy需要很长时间(数小时),我正在寻找解决方案。我会回到这一点。其余的安装现已暂停。

python3.6 -m pip install --user matplotlib

python3.6 -m pip安装--user ipython

python3.6 -m pip安装--user jupyter

python3.6 -m pip install --user熊猫

python3.6 -m pip安装--user 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... nochecking 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... nochecking for libutil.h... no确定,还是需要解决?
techraf

听起来好像正在检查C头文件和可能已安装的组件。在这种情况下,我认为您可以忽略“检查”,它只是帮助编译器将makefile放在一起,如另一个答案中所述。需要肯定地解决错误和警告,但是这些检查是可以的。
tlhIngan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.