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. mysql入门1

    进入mysql数据库:进入mysql安装时的目录bin文件夹内

  2. Python开发入门与实战15-IIS部署

    15. IIS部署 前面的章节我们完成了基本的业务功能的开发,本章节我们来说说python django项目如何部署到实际的运行环境,完成开发系统的发布工作. Python Django 项目部署发布 ...

  3. python获取指定时间段内的随机不重复的时间点

    上篇 <python时间时分秒与秒数的互相转换>http://www.cnblogs.com/gayhub/p/6154707.html 提到了把时间转成秒数的方法, 这篇写写转换成秒数后 ...

  4. C#导入Excel遇到数字字母混合列数据丢失解决

    错误重现: ----------------------------------------------------------------------- 在导入Excel读取数据时,其中的一个字段保 ...

  5. 区分苹果Safari浏览器

    区分苹果Safari浏览器 (function() { var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua ...

  6. 团队开发——冲刺2.f

    冲刺阶段二(第六天) 1.昨天做了什么? 编写软件测试计划书第二部分:游戏中新增3个道具(变大.变小.延时). 2.今天准备做什么? 1) 编写软件计划书第三阶段(项目任务.实施计划.风险管理): 2 ...

  7. 我的OpenCV学习笔记:VideoCapture类

    opnCV  学习博客http://blog.csdn.net/thefutureisour/article/details/7472104 1 OpneCV中的数据共享机制 OpenCV是一个很不错 ...

  8. Unity自动场景保存脚本

    新建一个名为AutoSave的编辑器脚本,并放于Assets/Editor下. using System; using UnityEditor; using UnityEditor.SceneMana ...

  9. 【LeetCode OJ】Binary Tree Level Order Traversal

    Problem Link: https://oj.leetcode.com/problems/binary-tree-level-order-traversal/ Traverse the tree ...

  10. Asp.net Web.Config - 配置元素 httpCookies

    1.属性   属性 说明 domain 可选的 String 属性. 设置 Cookie 域名. httpOnlyCookies 可选的 Boolean 属性. 脚本(javascript之类)能够访 ...