Raspiban Wheezy上预装的Python3版本是3.2.3,本文将介绍升级到3.4.3的方法。

此文也适用于安装其它版本(比如最新版本)的Python,只要下载时选择特定版本可以了。

我用的是B+型的树莓派,系统是2014-06-20发布的Raspbian Wheezy。

此文也适用于其它Debian系的linux系统(比如Ubuntu)。

先把整个raspbian系统升级到最新。

这一步不是必须的,可能用时较长,完成后可能需要重启。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

我们就在当前用户的home目录下进行吧,进到此目录

cd ~

安装python 3.4需要的依赖。有些东西可能已经存在了,会自动忽略。

sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev

这样编译出来的Python 3.4仍会缺少tkinter模块(用于GUI图形用户界面编程),在树莓派上可能用不到这个模块,所以刻意不编译它。

如果想使用tkinter,或想编译一个完整的Python,在这里加上tk tk-dev tcl tcl-dev这几个依赖包即可。

下载Python源码、解压。

第1行的命令,从Python官网下载3.4.3版的源码。

第2行的命令,把源码解压到当前目录下的Python-3.4.3目录里。

wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
tar zxvf Python-3.4.3.tgz

配置、编译、安装。如果顺利的话,在树莓派B+用时1小时20分钟左右,编译后源码的目录会膨胀到130 MB。

第2行后面的参数表示,我们要把新版Python安装到/opt/python3.4目录下。

在make命令后再执行一次make命令(会运行极短时间),既可看到仍有哪些Python模块无法编译,然后排查原因(通常是没安装相应的依赖包)。

cd ./Python-.4.
./configure --prefix=/opt/python3.4
make
make
sudo make install

可以给./configure后面加上优化选项,如下是打开LTO优化:

./configure --prefix=/opt/python3.5 --with-lto

推荐打开这个选项,这个选项在Python 3.5及以上版本才有。

(还有关于GPO的优化选项,一般在树莓派上用不到GPO优化,这里就不说了,需要请查阅文档。)

创建软链接。创建之后,打python3.4就能启动Python 3.4.3了。

第一行创建/usr/bin/python3.4这个软链接指向Python 3.4.3。

第二行创建一个pip的软链接。pip已经被官方集成到Python 3.4里,用它安装pypi上的第三方模块很方便。

sudo ln -s /opt/python3.4/bin/python3.4   /usr/bin/python3.4
sudo ln -s /opt/python3.4/bin/pip3.4 /usr/bin/pip3.4

(注意不要覆盖/usr/bin/python3这个软链接,python3命令(启动系统自带的Python)及其安装的模块承担了系统维护的工作。)

至此,安装成功,打python3.4可以启动Python 3.4.3

需要说明一下,在新安装的Python 3.4.3里可以正常使用sqlite3,但sqlite的版本比较旧:

Windows上Python 3.4.3自带的sqlite版本是3.8.3.1,这是因为使用了Raspbian自带的sqlite的缘故,其它通过链接使用的模块也可能出现此问题。

在树莓派(Raspberry Pi)上编译安装更新版本的Python的更多相关文章

  1. 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...

  2. live555在Raspberry Pi上的点播/直播

    1.live555在Raspberry Pi上的点播 live555MediaServer这个实例是个简单的服务器,支持多媒体点播,直接在Raspberry Pi上编译运行,或者通过交叉编译出ARM核 ...

  3. 在Raspberry Pi上安装XBMC

    2013-05-22 XBMC is a free and open source media player application developed by the XBMC Foundation, ...

  4. VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018

    视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...

  5. 树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法

    树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法 人穷,闲鱼淘了个二手的树莓派3 英国版,无奈咱也不会用,很无奈~ 安装教程百度到的差不多都可以,找个格式正常的一步一步 ...

  6. 如何在Raspberry Pi 3B中安装Windows 10 IoT Core

    Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本 ...

  7. 树莓派(Raspberry Pi)使用Shell编写的极简Service

    树莓派(Raspberry Pi)运行的系统是基于Debian的,不仅可以运行Shell,还支持systemd和docker,可以编写一个简单的服务,让其在启动时运行,执行一些自动化的操作.这里在Ra ...

  8. 用树莓派Raspberry Pi和Micro:bit做一个自拍器

    在这个项目中,我们将使用Python来构建一个由Micro:bit触发树莓派Raspberry Pi和相机模块的自拍器.这是开始使用硬件和简单文本编程的好方法. 我们将学习: 如何设置Raspberr ...

  9. 树莓派(Raspberry Pi 3) - 系统烧录及xshell连接

    树莓派(Raspberry pi)是一块集成度极高的ARM开发板,不仅包含了HDMI,RCA,CSI,HDMI,GPIO等端口,还支持蓝牙以及无线通信.由于 Raspberry Pi 几乎是为 Lin ...

随机推荐

  1. 如何查看前端部署的tracker代码

    1.www.gov.cn 2.F12>Source>左侧选择static.gridsumdissector.com/js 3.点击代码下方区域的中括号,展开代码preety print{}

  2. windows下安装rabbitmq的php扩展amqp

    最近研究rabbitmq队列,linux安装这样的软件一向都是很方便的,但是windows可能会比较麻烦,所以对windows的安装做个记录. windows上使用的php扩展为dll文件,首先去下载 ...

  3. Linux/Unix 线程同步技术之互斥量(1)

    众所周知,互斥量(mutex)是同步线程对共享资源访问的技术,用来防止下面这种情况:线程A试图访问某个共享资源时,线程B正在对其进行修改,从而造成资源状态不一致.与之相关的一个术语临界区(critic ...

  4. 第六章 第一个Linux驱动程序:统计单词个数

    现在进入了实战阶段,使用统计单词个数的实例让我们了解开发和测试Linux驱动程序的完整过程.第一个Linux驱动程序是统计单词个数. 这个Linux驱动程序没有访问硬件,而是利用设备文件作为介质与应用 ...

  5. mac OS X Yosemite (10.10.5) 下 安装vim 7.4笔记

    摘要 前言 需求与mac OS X 自带vim版本的冲突 默认Python解释器问题 并非Mac自带python的 homebrew 1. 前言 本文为自己作死折腾的问题记录 2. 需求与mac OS ...

  6. display:none与visibility:hidden区别

    display:none与visibility:hidden有一个共同的作用是隐藏要显示的内容isplay:none 隐藏,但是不占空间 “看不见摸不到” 加载 display:none 隐藏,但是不 ...

  7. 黑马程序员——【Java高新技术】——代理

    ---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...

  8. BackTrack5-r3 w3af无法更新问题解决

    wget http://pypi.python.org/packages/source/p/pybloomfiltermmap/pybloomfiltermmap-0.2.0.tar.gz --no- ...

  9. Caffe 源碼閱讀(六) data_layer.cpp

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  10. 准备再次开始更新文章,做了10年.net,有项目需要转java

    不仅要转java,而且还要直接上liferay portal ,一下子要学好多.