Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X

Préambule

J'ai essayé d'afficher le diagramme de réseau en utilisant NetworkX de Python dans les données de lien Wikipedia que j'ai importé plus tôt, mais il a fallu du temps pour construire l'environnement. Alors laissez la procédure. Au fait, j'ai découvert NetworkX lors du Python Beginners 'Gathering qui est sorti la semaine dernière.

Installation Homebrew

Excusez-moi d'un point très rudimentaire, mais utilisez la commande brew pour vérifier si l'outil de gestion de paquets Homebrew pour Mac est installé.

brew --version

Si vous ne l'avez pas encore installé, installez Homebrew.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
/master/install)"

S'il a été installé, mettez-le à jour avec la dernière version.

brew update

environnement pyenv-Create virtualenv

Qu'est-ce que pyenv-virtualenv?

Mac a 2 séries de Python depuis le début, mais je veux garder cet environnement et faire du projet une série de 3, donc je peux basculer automatiquement entre plusieurs versions de l'environnement Python [pyenv-virtualenv]( (https://github.com/yyuu/pyenv-virtualenv) est installé.

pyenv est un outil de commutation multi-environnement Python (gestion de version simple Python) virtualenv est le constructeur officiel d'environnement Python virtuel Python.

Il semble que pyenv-virtualenv soit une bibliothèque qui utilise virtualenv de pyenv. Quoi qu'il en soit, avec pyenv-virtualenv, vous pourrez basculer automatiquement n'importe quel répertoire entre Python 2 et 3.

Qiita a déjà beaucoup d'explications sur la construction de l'environnement pour pyenv et pyenv-virtualenv.

Installation de pyenv-virtualenv

brew install pyenv-virtualenv

À propos, cette installation installera également automatiquement le pyenv dépendant.

$ brew install pyenv-virtualenv
==> Installing dependencies for pyenv-virtualenv: autoconf, pkg-config, openssl, readline, pyenv

paramètres pyenv-virtualenv

Définir les variables d'environnement après l'installation

~/.bash_profile


export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Refléter les changements dans les variables d'environnement

source ~/.bash_profile

Affiche la version installable avec pyenv.

pyenv install --list

Recherchez la dernière version de Python 3 dans la liste et installez-la.

pyenv install 3.5.1

Python sera téléchargé et installé à partir de www.python.org comme ceci.

$ pyenv install 3.5.1
Downloading Python-3.5.1.tgz...
-> https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
Installing Python-3.5.1...

Une fois terminé, reflétez à nouveau les modifications des variables d'environnement.

source ~/.bash_profile

Accédez à votre répertoire de travail et faites fonctionner Python 3.5.1 dans ce répertoire.

cd [Tout répertoire de travail pour Python 3]
pyenv local 3.5.1

Lorsque vous avez terminé, assurez-vous que l'environnement change.

$ cd ~
$ python --version
Python 2.7.10

$ cd [Tout répertoire de travail pour Python 3]
$ python --version
Python 3.5.1

mise à jour pip

Je vais installer NetworkX, mais j'utiliserai le système de gestion de paquets Python pip pour l'installer. En Python3, la commande pip est attachée par défaut, mais si c'est la valeur par défaut, cela semble être une ancienne version, je vais donc la mettre à jour.

cd [Tout répertoire de travail pour Python 3]
pip install --upgrade pip
$ pip list
Omission
pip (7.1.2)
Omission

$ pip install --upgrade pip

$ pip list
Omission
pip (8.0.2)
Omission

Installation de NetworkX

NetworkX est une bibliothèque pour traiter des réseaux complexes en Python.

NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

cd [Tout répertoire de travail pour Python 3]
pip install networkx

Après l'installation, il semble que le module networkx soit placé sous .pyenv / versions / 3.5.1.

$ ls ~/.pyenv/versions/3.5.1/lib/python3.5/site-packages/networkx
__init__.py		classes			drawing			generators		relabel.py		tests
__pycache__		convert.py		exception.py		linalg			release.py		utils
algorithms		convert_matrix.py	external		readwrite		testing			version.py

$ ls ~/.pyenv/versions/3.5.1/share/doc/networkx-1.11/examples
3d_drawing	advanced	algorithms	basic		drawing		graph		multigraph	pygraphviz

Essayez d'afficher la console sur NetworkX

À titre de test, exécutons le Premier échantillon sur le site NetrowkX.

networkx-sample.py


import networkx as nx

G=nx.Graph()
G.add_node("spam")
G.add_edge(1,2)

print(G.nodes())
print(G.edges())

Créez un script networkx-sample.py dans l'environnement défini dans Python3 et exécutez-le.

$ cd [Tout répertoire de travail pour Python 3]
$ python networkx-sample.py 
['spam', 2, 1]
[(2, 1)]

Les nœuds et les bords du réseau sont affichés dans la console.

Installez matplotlib

Ensuite, je vais essayer de trouver et d'exécuter l 'Sample qui affiche graphiquement le réseau à partir du site officiel. , Il semble que la bibliothèque matplotlib soit nécessaire pour l'affichage des graphiques.

Installez également avec la commande pip.

pip install matplotlib

Si vous exécutez l'exemple tel quel, une erreur se produit. Le message d'erreur pointe-t-il vers cette page?

RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. 
See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. 
If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

(Le message d'erreur a une longue ligne, donc il se brise.)

Je ne l'ai pas résolu même si je l'ai fait comme écrit, je vais donc chercher une solution auprès de Qiita. Référence: matplotlib etc. ne peut pas être importé dans l'environnement VirtualEnv

Créer un nouveau fichier matplotlibrc

~/.matplotlib/matplotlibrc

Description d'une ligne dans matplotlibrc

backend : TkAgg

Essayez d'afficher le diagramme du réseau avec NetworkX

Créez un script Python en copiant l'exemple Random Geometric Graph du site officiel.

RandomGeometricGraph.py


import networkx as nx
import matplotlib.pyplot as plt

G=nx.random_geometric_graph(200,0.125)
# position is stored as node attribute data for random_geometric_graph
pos=nx.get_node_attributes(G,'pos')

# find node near center (0.5,0.5)
dmin=1
ncenter=0
for n in pos:
    x,y=pos[n]
    d=(x-0.5)**2+(y-0.5)**2
    if d<dmin:
        ncenter=n
        dmin=d

# color by path length from node near center
p=nx.single_source_shortest_path_length(G,ncenter)

plt.figure(figsize=(8,8))
nx.draw_networkx_edges(G,pos,nodelist=[ncenter],alpha=0.4)
nx.draw_networkx_nodes(G,pos,nodelist=p.keys(),
                       node_size=80,
                       node_color=[float(v) for v in p.values()],
                       cmap=plt.cm.Reds_r)

plt.xlim(-0.05,1.05)
plt.ylim(-0.05,1.05)
plt.axis('off')
plt.savefig('random_geometric_graph.png')
plt.show()

Cela ne fonctionnait pas dans Python3 tel quel, j'ai donc changé une ligne.

original

node_color=p.values()

Je l'ai changé comme ça. Je pense que c'est la différence entre les séries 2 et 3, mais cela peut être dû à la version de matplotlib.

node_color=[float(v) for v in p.values()]

Exécuter un échantillon

Lorsque j'ai exécuté l'exemple, un diagramme de réseau a été affiché et un fichier random_geometric_graph.png a été créé.

python RandomGeometricGraph.py

スクリーンショット 2016-02-01 14.38.15.png

Recommended Posts

Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X
Créer un environnement Python sur Mac (2017/4)
Créer un environnement de développement Python (pyenv / virtualenv) sur Mac (Homebrew)
Créez un environnement python sur votre Mac
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Créez un environnement Python sur votre Mac en utilisant pyenv
Créez un environnement shell et python décent sur Windows
Construire un environnement Python sur Mac
Créez un environnement virtuel avec Python!
Créer un environnement python dans centos
Construire un environnement Python sur un Mac, jusqu'au point d'utiliser Jupyter Lab
Créer un environnement virtuel pour python sur mac [Très facile]
Construction de l'environnement VScode (sur Mac) et affichage des graphiques en Python (@ browser)
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
Étapes pour créer rapidement un environnement d'apprentissage en profondeur sur Mac avec TensorFlow et OpenCV
[Pyenv] Construire un environnement python avec ubuntu 16.04
[Python] Créez un environnement virtuel avec Anaconda
Un mémo contenant Python2.7 et Python3 dans CentOS
Remarques sur la construction de Python et pyenv sur Mac
Créer un environnement Python avec Anaconda sur Mac
Créez un environnement virtuel pour python avec pyenv
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Construction de l'environnement Python3 TensorFlow (Mac et pyenv virtualenv)
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Construire un environnement python avec virtualenv et direnv
[AWS] Créez un environnement Python Lambda avec CodeStar et faites Hello World
Créez un environnement python avec ansible sur centos6
Créer un environnement Python sur Mac (Mountain Lion)
Créer un environnement virtuel avec conda avec Python
Créer un environnement de construction python3 avec Sublime Text3
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Essayez de créer un environnement python et anaconda sur Mac (avec pyenv, conda)
Créez un environnement virtuel avec pyenv et venv
[Venv] Créer un environnement virtuel python sur Ubuntu
Mettez Python 2.7.x dans pyenv sur Mac OSX 10.15.5
Remarques sur la configuration de l'environnement pyenv et python à l'aide de Homebrew sur Mac OS Marvericks
Supprimer l'ancien environnement pyenv sur Mac et mettre à jour
Créer un environnement d'exécution Python sur IBM i
Créez rapidement un environnement d'exécution d'application Web Python3.4 + Nginx + uWSGI + Flask en utilisant pyenv sur Ubuntu 12.04
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Installez Python 3 sur Mac et créez un environnement [Definitive Edition]
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Installez le sélénium sur votre Mac et essayez-le avec python
Créez un environnement virtuel avec Anaconda installé via Pyenv
Créer un environnement Python d'apprentissage automatique sur Mac OS
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Créez un environnement de développement python avec vagrant + ansible + fabric
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Créer un environnement de développement Python sur Mac OS X
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Installer l'environnement Python sur un PC local (pyenv, venv sur Mac)
Créer un environnement de développement Python avec OS X Lion
Construire un environnement de calcul numérique avec pyenv et miniconda3
Dessinez un graphique avec NetworkX
python avec pyenv et venv