博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在树莓派(Raspberry Pi)上编译安装更新版本的Python
阅读量:6872 次
发布时间:2019-06-26

本文共 1857 字,大约阅读时间需要 6 分钟。

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.tgztar 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.4make 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.4sudo 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的缘故,其它通过链接使用的模块也可能出现此问题。

转载于:https://www.cnblogs.com/infopi/p/update_python_raspbian.html

你可能感兴趣的文章
[1line]用wget镜像网站
查看>>
PHP画图时出现“因其本身有错无法显示”的问题的解决办法
查看>>
查看和修改awr报告保留时间
查看>>
虚拟化与云计算也跳不出的成本怪圈——新时代下的“安迪-比尔定律”分析
查看>>
fedora 17 gnome 添加打开终端快捷键
查看>>
微信浏览器返回上一页停留在原位置
查看>>
nfs服务器的搭建和挂载使用
查看>>
我的友情链接
查看>>
jQuery怎么判断table里是否有可见的tr
查看>>
系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
查看>>
fork()
查看>>
Java8 - 日期和时间实用技巧
查看>>
Java记录 -58- Iterator 迭代器
查看>>
RabbitMQ入门(5)--主题
查看>>
菜鸟如何使用GoEasy实现第一个web实时消息推送
查看>>
LNMMP架构的安装配置和功能的实现
查看>>
几个设置让你的邮箱不会爆满
查看>>
我的友情链接
查看>>
在linux6上安装RAC时多路径的权限设置
查看>>
[转载] 七龙珠第一部——第037话 忍者出现
查看>>