在树莓派(Raspberry Pi)上编译安装更新版本的Python
2014-08-31 10:16
543 查看
Raspiban Wheezy上预装的Python3版本是3.2.3,本文将介绍升级到3.4.3的方法。
此文也适用于安装其它版本(比如最新版本)的Python,只要下载时选择特定版本可以了。
我用的是B+型的树莓派,系统是2014-06-20发布的Raspbian Wheezy。
此文也适用于其它Debian系的linux系统(比如Ubuntu)。
先把整个raspbian系统升级到最新。
这一步不是必须的,可能用时较长,完成后可能需要重启。
我们就在当前用户的home目录下进行吧,进到此目录
安装python 3.4需要的依赖。有些东西可能已经存在了,会自动忽略。
这样编译出来的Python 3.4仍会缺少tkinter模块(用于GUI图形用户界面编程),在树莓派上可能用不到这个模块,所以刻意不编译它。
如果想使用tkinter,或想编译一个完整的Python,在这里加上tk tk-dev tcl tcl-dev这几个依赖包即可。
下载Python源码、解压。
第1行的命令,从Python官网下载3.4.3版的源码。
第2行的命令,把源码解压到当前目录下的Python-3.4.3目录里。
配置、编译、安装。如果顺利的话,在树莓派B+用时1小时20分钟左右,编译后源码的目录会膨胀到130 MB。
第2行后面的参数表示,我们要把新版Python安装到/opt/python3.4目录下。
在make命令后再执行一次make命令(会运行极短时间),既可看到仍有哪些Python模块无法编译,然后排查原因(通常是没安装相应的依赖包)。
可以给./configure后面加上优化选项,如下是打开LTO优化:
推荐打开这个选项,这个选项在Python 3.5及以上版本才有。
(还有关于GPO的优化选项,一般在树莓派上用不到GPO优化,这里就不说了,需要请查阅文档。)
创建软链接。创建之后,打python3就能启动Python 3.4.3了。
第一行删除已有的指向Python 3.2.3的软链接。
第二行创建/usr/bin/python3这个软链接指向Python 3.4.3。
第三行创建一个pip的软链接。pip已经被官方集成到Python 3.4里,用它安装pypi上的第三方模块很方便。
至此,安装成功,打python3可以启动Python 3.4.3
需要说明一下,在新安装的Python 3.4.3里可以正常使用sqlite3,但sqlite的版本比较旧:
Windows上Python 3.4.3自带的sqlite版本是3.8.3.1,这是因为使用了Raspbian自带的sqlite的缘故,其它通过链接使用的模块也可能出现此问题。
此文也适用于安装其它版本(比如最新版本)的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 libssl-dev openssl [code]libgdbm-dev
liblzma-dev libreadline-dev libncursesw5-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-3.4.3 ./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就能启动Python 3.4.3了。
第一行删除已有的指向Python 3.2.3的软链接。
第二行创建/usr/bin/python3这个软链接指向Python 3.4.3。
第三行创建一个pip的软链接。pip已经被官方集成到Python 3.4里,用它安装pypi上的第三方模块很方便。
sudo rm /usr/bin/python3 sudo ln -s /opt/python3.4/bin/python3.4 /usr/bin/python3 sudo ln -s /opt/python3.4/bin/pip3.4 /usr/bin/pip3.4
至此,安装成功,打python3可以启动Python 3.4.3
需要说明一下,在新安装的Python 3.4.3里可以正常使用sqlite3,但sqlite的版本比较旧:
Windows上Python 3.4.3自带的sqlite版本是3.8.3.1,这是因为使用了Raspbian自带的sqlite的缘故,其它通过链接使用的模块也可能出现此问题。
相关文章推荐
- 【Python笔记】源码编译安装Python时,如何支持自定义安装的高版本openssl库
- Linux下python版本的更新以及第三方包的安装
- 选择Python版本并在Windows上安装Python + Python基本语法(会持续更新)
- CentOS7保留默认python版本并安装更新python2和python3两个最新版本(python2和python3共存)
- Boost.Python:安装使用(兼具Boost.Python库中Python编译版本的修改)
- ROS 学习系列 -- 树莓派编译安装完整版本ROS
- 安装YouCompleteMe时,编译依赖的python版本不对
- Kali linux 2.0下安装了两个版本Python,Sublime编译Python,默
- Python Scrapy安装(python 版本手动更新)
- 树莓派3 安装vim8.0 编译python2支持
- 在树莓派B+上编译安装opencv 3.1.0 for both python
- CentOS6.5下python版本的protobuf编译及安装
- Robi改造计划更新---moveit终于在树莓派raspberry 3B(raspbian<Jessie>, ROS Indigo版本)上安装好了
- Anaconda3 安装后python版本更新
- python 更新版本后库的安装
- 树莓派编译安装完整版本ROS
- Centos6.5 编译安装python3.5版本,无法使用退格键方向键删除键等
- 编译安装带ssl 模块指定版本Python
- win10编译安装caffe的CPU版本和matlab及python接口
- linux下编译安装python3.6.2即是升级本机的python2版本到3