In Raspeye ist standardmäßig 3.5.3
von Python installiert.
Ich wollte Python mit 3.6
oder höher verwenden, also werde ich pyenv verwenden, um die Versionen zu wechseln.
$ uname -a
# Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
$ lsb_release -a
# No LSB modules are available.
# Distributor ID: Raspbian
# Description: Raspbian GNU/Linux 9.11 (stretch)
# Release: 9.11
# Codename: stretch
Installieren Sie zunächst die erforderlichen Pakete.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install -y git openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
Klone pyenv von github.
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Fügen Sie Folgendes zu .bash_profile
hinzu, damit Sie den Befehl ausführen können.
$ sudo vi ~/.bash_profile
.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Laden Sie .bash_profile
neu.
$ source ~/.bash_profile
Die Installation ist abgeschlossen, wenn die Version mit dem folgenden Befehl angezeigt wird.
$ pyenv --version
#pyenv 1.2.16-5-g7097f820
Lassen Sie uns eine Liste der installierbaren Versionen anzeigen.
$ pyenv install --list
#Available versions:
# 2.1.3
# 2.2.3
# ...
# 3.6.0
# 3.6-dev
# ...
# stackless-3.4.7
# stackless-3.5.4
Dieses Mal werde ich 3.6.0
installieren.
$ pyenv install 3.6.0
Lassen Sie uns die Version nach Abschluss der Installation ändern.
Überprüfen Sie zunächst die Version vor der Änderung.
$ python --version
#Python 2.7.13
$ python3 --version
#Python 3.5.3
Ändern Sie die Version.
$ pyenv global 3.6.0
Die Version wurde wie folgt geändert!
$ python --version
#Python 3.6.0
$ python3 --version
#Python 3.6.0
Stellen Sie pyenv mit dem folgenden Befehl ein.
$ pyenv global x.x.x
Übrigens können Sie den Bereich festlegen, indem Sie diesen "globalen" Teil ändern.
Geltungsbereich | Verwenden Sie Anwendungen | |
---|---|---|
shell | Gilt nur für die Shell, die Sie gerade verwenden | Vorübergehende Nutzung |
local | Auf aktuelles Verzeichnis anwenden | Ich möchte für jeden Ordner festlegen |
global | Gilt für das Ganze | Ich möchte die allgemeine Standardumgebung ändern |
Sie können es wiederherstellen, indem Sie den Teil "x.x.x" in "System" ändern.
Beispiel
$ pyenv local 3.6.4
$ pyenv shell 2.7.6
$ pyenv global system
Sie können die Liste der installierten Versionen auch mit dem folgenden Befehl anzeigen.
$ pyenv versions
Als ich versuchte, die 3.7-Serie zu installieren, konnte ich sie mit dem folgenden Fehler nicht installieren.
$ pyenv install 3.7.0
Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
Installing Python-3.7.0...
BUILD FAILED (Raspbian 9.11 using python-build 1.2.16-5-g7097f820)
Inspect or clean up the working tree at /tmp/python-build.20200213174102.2652
Results logged to /tmp/python-build.20200213174102.2652.log
Last 10 log lines:
File "/tmp/tmp01sfxi5t/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/__init__.py", line 42, in <module>
File "/tmp/tmp01sfxi5t/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/cmdoptions.py", line 16, in <module>
File "/tmp/tmp01sfxi5t/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/index.py", line 25, in <module>
File "/tmp/tmp01sfxi5t/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/download.py", line 39, in <module>
File "/tmp/tmp01sfxi5t/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module>
File "/tmp/python-build.20200213174102.2652/Python-3.7.0/Lib/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
Makefile:1122: recipe for target 'install' failed
make: *** [install] Error 1
Durch die Installation von libffi-dev konnte ich auch die 3.7-Serie installieren.
$ sudo apt install libffi-dev
$ pyenv install 3.7.0
Heute ist bis hierher!
Recommended Posts