Récemment, j'ai commencé à toucher un peu python pour étudier l'apprentissage automatique. Cette fois, j'organiserai la construction de l'environnement python sur CentOS 7.
La série python 3 n'est pas fournie dans le référentiel CentOS 7, vous devez donc enregistrer le référentiel séparément.
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Cependant, puisqu'il s'agit d'un référentiel qui n'est normalement pas utilisé, il ne doit être désactivé et utilisé que si vous souhaitez l'utiliser.
# vim /etc/yum.repos.d/ius.repo
[ius]
enabled=1
↓
enabled=0
La dernière version fournie par ius était la version 3.5.2, je vais donc l'utiliser cette fois.
# yum clean all
# yum install --enablerepo=ius -y python35u python35u-libs python35u-devel python35u-pip
Cependant, tel quel, le chemin se dirige vers python, qui est inclus par défaut, il pointe donc vers le 2ème système.
$ python --version
Python 2.7.5
La raison en est que l'alias est collé comme suit.
# ls -l /bin/python
lrwxrwxrwx 1 root root 7 décembre 17 17:56 /bin/python -> python2
# ls -l /bin/python2
lrwxrwxrwx 1 root root 9 décembre 17 17:56 /bin/python2 -> python2.7
# ls -l /bin/python3*
-rwxr-xr-x 2 root root 11304 28 juin 2016/bin/python3.5
lrwxrwxrwx 1 root root 26 janvier 1 20:02 /bin/python3.5-config -> /usr/bin/python3.5m-config
-rwxr-xr-x 2 root root 11304 28 juin 2016/bin/python3.5m
-rwxr-xr-x 1 racine racine 173 28 juin 2016/bin/python3.5m-config
-rwxr-xr-x 1 racine racine 3398 28 juin 2016/bin/python3.5m-x86_64-config
Notez qu'il est mal de recoller le lien symbolique de python vers 3 séries. Si vous le remplacez, diverses choses utilisant le système python2 ne fonctionneront pas.
Par exemple, yum ne peut pas être utilisé. J'obtiens une erreur comme celle-ci.
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
Donc, lorsque vous utilisez le 3ème système, essayez de l'utiliser comme suit pour le moment. (Habituellement, comment dois-je l'utiliser? Vaut-il mieux utiliser pyenv?)
# ln -s /bin/python3.5 /bin/python3
# python3 --version
Python 3.5.2
Depuis pip a également un passage à 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)
Cette fois, pour étudier, nous utiliserons "NumPy" qui fournit un tableau multidimensionnel et "Matplotlib" qui peut dessiner des graphiques et visualiser des données.
Les packages suivants sont également nécessaires pour importer Matplotlib, alors installez-les.
# yum install --enablerepo=ius -y python35u-tkinter
Ensuite, installez NumPy et Matplotlib.
# pip3 install numpy matplotlib
La préparation est maintenant terminée. Après cela, si vous écrivez un script comme celui-ci et que vous l'exécutez, vous pouvez générer un graphique.
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()
Si vous n'êtes pas dans un environnement GUI tel que la connexion à distance avec SSH, vous obtiendrez l'erreur suivante lors de l'exécution de la partie plt.plot (x, y) du script ci-dessus.
_tkinter.TclError: no display name and no $DISPLAY environment variable
Les mesures suivantes peuvent être envisagées.
Tout d'abord, modifiez les paramètres Python.
/usr/lib64/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc
38 backend : tkagg
↓
38 #backend : tkagg
39 backend : agg
En plus des modifications ci-dessus, modifiez la dernière ligne du script "sample-graph.py" comme suit.
8 plt.show()
↓
8 plt.savefig('sample-graph.png')
Vous pouvez maintenant générer le graphique spécifié dans un fichier.
Si vous vous connectez à distance avec ssh, souhaitez-vous faire fonctionner la machine directement? Si la machine est CUI, changez-la en GUI avec la commande suivante et faites-la fonctionner. Qu'est-ce qui est bon après ça!
# systemctl isolate graphical.target
Je pense que vous avez construit l'environnement python nécessaire pour étudier. (J'ai mis beaucoup de temps à préparer l'environnement ...)
Recommended Posts