如何在Raspbian Jessie上安装Python 3.5

7

我需要在Rasbian(树莓派的Debian)上安装Python 3.5+。目前只支持版本3.4。为了编译源代码,我必须安装:

sudo apt-get install -y python3 python-empy python3-dev python3-empy python3-nose python3-pip python3-setuptools python3-vcstool pydocstyle pyflakes python3-coverage python3-mock python3-pep8

但我认为apt-get会安装更多的软件包,例如libpython3-dev

我已经从https://www.python.org/downloads/安装了python3,但我认为还不够完整。

你能给我一些建议,最好的方法是什么?

类似的问题在这里发布 Install Python 3.5 with pip on Debian 8,但这个解决方案似乎在arm64上不起作用。


编辑:

关于Padraic Cunningham的评论:我已经完成了第一步。第二步的结果是这样的:

$ sudo python3.5 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 19177, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/__init__.py", line 16, in <module>
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/vcs/subversion.py", line 9, in <module>
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/index.py", line 30, in <module>
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/wheel.py", line 39, in <module>
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/_vendor/distlib/scripts.py", line 14, in <module>
  File "/tmp/tmpoe3rjlw3/pip.zip/pip/_vendor/distlib/compat.py", line 66, in <module>
ImportError: cannot import name 'HTTPSHandler'

http://bohdan-danishevsky.blogspot.ie/2015/10/building-python-35-on-raspberry-pi-2.html - Padraic Cunningham
考虑在 http://raspberrypi.stackexchange.com/ 上发帖询问此类问题。 - Paul Rooney
1
你需要安装libssl头文件,可以使用sudo apt-get install libssl-dev命令来安装,并重新编译python3。 - Padraic Cunningham
2个回答

15

请前往 RaspberryPi stackexchange,并按照这些说明进行操作。概括一下:

sudo apt-get install build-essential libc6-dev
sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev
sudo apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev
sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
cd $HOME
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
tar -zxvf Python-3.8.6.tgz
cd Python-3.8.6
./configure       # 3 min 13 s
# Let's use 4 threads
make -j4          # 8 min 29 s
sudo make install # ~ 4 min
cd ..
sudo rm -fr ./Python-3.8.6*
# upgrade:
sudo pip3 install -U pip
sudo pip3 install -U setuptools
(注:显示的大约时间是旧版 Python 3.5.2 的测量结果。)

这个解决方案对我来说更好,因为它允许我保持稳定的Raspbian版本。 - longlostbro
为什么不将所有的apt-get命令汇总到一行中,并使用&&连接其余命令? - Zurechtweiser
@Zurechtweiser 主要是为了可读性,其次是因为有些软件比其他软件更常见且已经安装。此外,如果其中一个出现错误,您很容易就会失去对哪个已安装和未安装的跟踪。 - not2qubit

8

@Padraic Cunningham的建议安装libssl头文件是有帮助的。

sudo apt-get install libssl-dev

但是接下来我还需要安装GCC 5及以上版本和CMake 3.5及以上版本。新的Raspian Stretch自带Python 3.5,另外还有GCC 6.1和CMake 3.5。
所以最简单的方法就是升级系统到Stretch(目前处于测试阶段):
sudo echo 'deb http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi' > /etc/apt/sources.list.d/stretch.list
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove

这非常简单且一直保持更新。最终,这是我首选的解决方案 :)

1
太棒了!省去了我大量的挫败感。 - Shane C. Mason
我曾经遇到过同样的问题,使用了这个解决方案后,嵌入式无线适配器无法被识别。找不到设备"wlan0"。 - longlostbro
有时候接口会有另一个名称。 - Alex44

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接