Vor kurzem habe ich angefangen, Python ein wenig zu berühren, um maschinelles Lernen zu studieren. Dieses Mal werde ich den Aufbau der Python-Umgebung unter CentOS 7 organisieren.
Die Python 3-Serie wird nicht im CentOS 7-Repository bereitgestellt, daher müssen Sie das Repository separat registrieren.
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Da es sich jedoch um ein Repository handelt, das normalerweise nicht verwendet wird, sollte es deaktiviert und nur verwendet werden, wenn Sie es verwenden möchten.
# vim /etc/yum.repos.d/ius.repo
[ius]
enabled=1
↓
enabled=0
Das neueste von ius bereitgestellte war 3.5.2, also werde ich es dieses Mal verwenden.
# yum clean all
# yum install --enablerepo=ius -y python35u python35u-libs python35u-devel python35u-pip
Der Pfad führt jedoch zu Python, das standardmäßig enthalten ist, sodass er auf das 2. System verweist.
$ python --version
Python 2.7.5
Der Grund dafür ist, dass der Alias wie folgt eingefügt wird.
# ls -l /bin/python
lrwxrwxrwx 1 root root 7 Dezember 17 17:56 /bin/python -> python2
# ls -l /bin/python2
lrwxrwxrwx 1 root root 9. Dezember 17 17:56 /bin/python2 -> python2.7
# ls -l /bin/python3*
-rwxr-xr-x 2 root root 11304 28. Juni 2016/bin/python3.5
lrwxrwxrwx 1 root root 26. Januar 1 20:02 /bin/python3.5-config -> /usr/bin/python3.5m-config
-rwxr-xr-x 2 root root 11304 28. Juni 2016/bin/python3.5m
-rwxr-xr-x 1 Wurzel Wurzel 173 28. Juni 2016/bin/python3.5m-config
-rwxr-xr-x 1 Wurzel Wurzel 3398 28. Juni 2016/bin/python3.5m-x86_64-config
Beachten Sie, dass es NG ist, den symbolischen Link von Python zu 3-Serien erneut einzufügen. Wenn Sie es ersetzen, funktionieren verschiedene Dinge mit dem Python2-System nicht.
Zum Beispiel kann yum nicht verwendet werden. Ich bekomme so einen Fehler.
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
Wenn Sie also das 3. System verwenden, versuchen Sie es vorerst wie folgt. (Wie soll ich es normalerweise verwenden? Ist es besser, Pyenv zu verwenden?)
# ln -s /bin/python3.5 /bin/python3
# python3 --version
Python 3.5.2
Da hat pip auch einen Pass zu 2.7.
# ln -s /bin/pip3.5 /bin/pip3
# pip3 --version
pip 9.0.1 from /usr/lib/python3.5/site-packages (python 3.5)
Dieses Mal werden wir zum Studieren "NumPy" verwenden, das ein mehrdimensionales Array bereitstellt, und "Matplotlib", das Diagramme zeichnen und Daten visualisieren kann.
# yum install --enablerepo=ius -y python35u-tkinter
Die folgenden Pakete sind auch erforderlich, um Matplotlib zu importieren. Installieren Sie sie daher. Installieren Sie dann NumPy und Matplotlib.
# pip3 install numpy matplotlib
Die Vorbereitung ist nun abgeschlossen. Wenn Sie danach ein solches Skript schreiben und ausführen, können Sie ein Diagramm ausgeben.
sample-graph.py
1 #!/bin/python3
2 import numpy as np
3 import matplotlib.pyplot as plt
4
5 x = np.arange(0,6,0.1)
6 y = np.sin(x)
7
8 plt.plot(x, y)
9 plt.show()
Wenn Sie sich nicht in einer GUI-Umgebung befinden, z. B. eine Remoteverbindung mit SSH, wird beim Ausführen des Teils plt.plot (x, y) des obigen Skripts die folgende Fehlermeldung angezeigt.
_tkinter.TclError: no display name and no $DISPLAY environment variable
Folgende Maßnahmen können berücksichtigt werden.
Ändern Sie zunächst die Python-Einstellungen.
/usr/lib64/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc
38 backend : tkagg
↓
38 #backend : tkagg
39 backend : agg
Ändern Sie zusätzlich zu den obigen Änderungen die letzte Zeile des Skripts "sample-graph.py" wie folgt.
8 plt.show()
↓
8 plt.savefig('sample-graph.png')
Sie können das angegebene Diagramm jetzt in eine Datei ausgeben.
Wenn Sie eine Remoteverbindung mit ssh herstellen, möchten Sie die Maschine direkt bedienen? Wenn es sich bei der Maschine um eine CUI handelt, ändern Sie sie mit dem folgenden Befehl in eine GUI und bedienen Sie sie. Was ist danach gut!
# systemctl isolate graphical.target
Ich denke, Sie haben die Python-Umgebung erstellt, die für das Studium erforderlich ist. (Ich habe viel Zeit gebraucht, um die Umgebung vorzubereiten ...)