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

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

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

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

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

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

sudoapt-get update

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

树莓派安装python3.8_在树莓派(Raspberry Pi)上编译安装更新版本的Python相关推荐

  1. centos安装python3.8.1_在CentOS 8上编译安装Python 3.8.1

    CentOS 8包含Python 3.6版本,可以使用dnf工具安装或更新. 在撰写本文时,Python 3.8是Python语言的最新主要版本.它包括许多新特性,如赋值表达式.仅定位的参数.f-st ...

  2. 树莓派支持uvi协议吗_树莓派如何控制电视机,在Raspberry Pi上安装HDMI-CEC

    在本教程中,我将展示如何使用HDMI-CEC和树莓派来控制电视. HDMI-CEC是一种特殊的协议,用于电视与另一个设备通过HDMI电缆进行通信.该协议允许电视控制另一个设备,同时也允许该设备控制电视 ...

  3. 如何在 Raspberry Pi 上快速安装 Oracle Linux ?

    你知道树莓派(Raspberry Pi)吗?它可不是一款餐后甜点,而是一个只有信用卡大小的计算机,更准确的说它是一款单板计算机.那么,如何简单快速地在上面安装 Oracle Linux?下面将会详细介 ...

  4. linux下安装树梅派系统,优麒麟树莓派系统(优麒麟 for Raspberry Pi)的安装方法...

    要安装优麒麟树莓派系统(优麒麟 for Raspberry Pi),得先下载 ubuntukylin-focal-beta-raspi+arm64.img.xz,然后通过以下步骤引导您烧录优麒麟到您的 ...

  5. mysql编译安装指定端口_在CentOS7系统上编译安装MySQL 5.7.13步骤详解

    MySQL 5.7主要特性 1.更好的性能 对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的. 2.更好的Inn ...

  6. 如何在5美元的Raspberry Pi上构建个人开发服务器

    In this article, you'll learn how to build a personal dev server by installing Git, Node.js, Rust, a ...

  7. 树莓派安装python3.5+tensorflow_树莓派4B安装Tensorflow的方法步骤

    1.写作背景 Tensorflow官方在2018年宣布,正式发布支持树莓派版本的Tensorflow,编者开始直接用: pip install tensorflow 进行安装,在安装成功后使用impo ...

  8. 树莓派原python3.5+opencv3.3.1+tensorflow1.7.0安装

    树莓派原python3.5+opencv3.3.1+tensorflow1.7.0安装 miniconda里装好opencv后import没有错误,使用时却会出现cv2.error:......re_ ...

  9. 1g的树莓派4b能做什么_树莓派4代B型1GB Raspberry Pi

    简介 树莓派最新发布的第四代产品 Raspberry Pi 4 B, 性能与树莓派 3B+相比无论是处理器速度,还是多媒体和内存上都有显著提升.Raspberry Pi 4 B拥有与入门级 x86 P ...

最新文章

  1. TensorFlow 1.7.0正式发布,Bug修复和改进内容都在这里了
  2. SAP HUM事务代码 HUMAT 之初探
  3. ubuntu子系统重置
  4. 模态对话框和非模态对话框的消息循环分析
  5. 『设计模式』简单工厂模式
  6. Unhandled event loop exception Item not added
  7. 强化学习在美团“猜你喜欢”的实践
  8. 蓝桥杯 ALGO-83 算法训练 阶乘 java版
  9. VC++6.0与VS2010的区别
  10. 计算机专业法语怎么读,计算机专业法语词汇
  11. 自动驾驶将产生比互联网更大的产值
  12. 汇总我关注的技术博主的2021年度总结
  13. pyqt5 失焦 监听无操作 定时器
  14. Matlab模拟傅里叶变换
  15. Linux和windows下minio+springboot实现文件服务器上传下载和nginx反向代理
  16. 相机标定(三)——手眼标定
  17. 什么是ALEO,深度解析及获取方法
  18. 世界是由什么组成的java_世界是由什么组成的?
  19. 深度揭秘年薪60W的阿里P7简历制作过程!
  20. Android 开发艺术探索笔记(21),阿里P7级别面试经验总结

热门文章

  1. 前端可视化开发-编辑器
  2. DevExtreme 移动跨平台开发 C#语言
  3. python常用程序代码(持续更新收集)
  4. python安装在什么地方_python模块安装目录在哪里
  5. 移动端ajax分页,移动端分页加载 - 花乐天的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. linux无法启动hbase密码,linux – 无法在请求的2181端口启动ZK,而导出HBASE_MANAGES_ZK = false...
  7. jdk8 HashMap初始化和扩容机制
  8. python-函数入门(二)
  9. 【后缀数组】洛谷P3809模板题
  10. XMLDictionary 解析的使用