发新帖

[原创] 【Raspberry Pi 3B+试用体验】在树莓派上编译安装Python3.6.6

[复制链接]
发表于 2018-9-27 20:35:22
| 629 查看 | 0 回复
本帖最后由 ChinaXRY 于 2018-9-27 21:34 编辑

Raspberry Pi基金会官网目前提供的最新版Raspbian(2018-06-27-raspbian-stretch.img)内置的Python版本为2.7与3.5,而如今Python基金会已正式推出了Python 3.7。越来越多的开源项目也都开始要求用户拥有Python 3.6+的环境,然而默认的软件源中并没有Python 3.6这个包,添加第三方的源也无法获取到最新的Python 3.6.6。

Python 3.6开始支持以下几个新特性:
  • PEP 498, formatted string literals. (格式化的字符串文字)
  • PEP 515, underscores in numeric literals. (以数字文字表示)
  • PEP 526, syntax for variable annotations. (变量注释的语法)
  • PEP 525, asynchronous generators. (异步发生器)
  • PEP 530: asynchronous comprehensions. (异步理解)

今天就来说说通过编译源码的方式来给树莓派安装Python 3.6.6吧~

1. 安装必要的编译工具包
  1. sudo apt update
  2. sudo apt install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y
复制代码

2. 从Python官方下载并解压Python 3.6.6的源码
  1. wget ht去tps://ww汉w.pyth字on.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
  2. tar xf Python-3.6.6.tar.xz
  3. cd Python-3.6.6
复制代码

3. 编译并安装
  1. ./configure --enable-optimizations --enable-shared --prefix=/usr/local LDFLAGS="-Wl,--rpath=/usr/local/lib"
  2. make -j 4
  3. sudo make altinstall
复制代码
    这里稍微做几个小说明:
        a. --enable-optimizations 这个参数用于启用CPU优化
        b. --enable-shared --prefix=/usr/local LDFLAGS="-Wl,--rpath=/usr/local/lib" 这部分的参数用于解决动态链接库不在默认环境变量中的问题,如果不加上会导致Python3.6运行时报错:
              python3.6: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
        c. -j 4 这个参数用于调动树莓派3B+的四个核心同时编译,加快编译速度
        d. altinstall 不使用常规的install,目的是保护python3命令指向系统默认的Python 3.5,而不会被新安装的Python 3.6.6覆盖

4. 测试安装是否成功
  1. pi@Kagamiz-Raspberry-Pi-3B-Plus:~/Python-3.6.6 $ python3.6 -V
  2. Python 3.6.6
复制代码
    输入"python3.6 -V",按下回车,若能正确打印出版本号,则安装成功。

5. (可选)清理残余文件
  1. cd ..
  2. sudo rm -r Python-3.6.6
  3. rm Python-3.6.6.tar.xz
  4. sudo apt --purge remove build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y
  5. sudo apt autoremove -y
  6. sudo apt clean
复制代码
我要点赞 0

举报

您需要登录后才可以回帖 登录 | 立即注册