Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an

Präambel

Ich habe versucht, das Netzwerkdiagramm mit NetworkX of Python in den Wikipedia-Linkdaten anzuzeigen, die ich zuvor importiert habe, aber es hat einige Zeit gedauert, die Umgebung zu erstellen. Verlassen Sie also das Verfahren. Übrigens habe ich bei Python Beginners 'Gathering, das letzte Woche veröffentlicht wurde, etwas über NetworkX erfahren.

Homebrew-Installation

Entschuldigen Sie mich von einem sehr rudimentären Punkt aus, aber überprüfen Sie mit dem Befehl brown, ob das Paketverwaltungstool Homebrew für Mac installiert ist.

brew --version

Wenn Sie es noch nicht installiert haben, installieren Sie Homebrew.

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

Wenn es installiert wurde, aktualisieren Sie es auf die neueste Version.

brew update

pyenv-Erstellen Sie eine virtuelle Umgebung

Was ist pyenv-virtualenv?

Mac hat von Anfang an zwei Python-Serien, aber ich möchte diese Umgebung beibehalten und das Projekt in drei Serien umwandeln, damit ich automatisch zwischen mehreren Versionen der Python-Umgebung wechseln kann [pyenv-virtualenv]( (https://github.com/yyuu/pyenv-virtualenv) ist installiert.

pyenv ist ein Python-Switching-Tool für mehrere Umgebungen (Simple Python-Versionsverwaltung). virtualenv ist der offizielle Builder für Python Virtual Python Environment.

Es scheint, dass pyenv-virtualenv eine Bibliothek ist, die virtualenv von pyenv verwendet. Mit pyenv-virtualenv können Sie jedes Verzeichnis automatisch zwischen Python 2 und 3 wechseln.

Qiita hat bereits viele Erklärungen zum Aufbau der Umgebung für pyenv und pyenv-virtualenv.

Installation von pyenv-virtualenv

brew install pyenv-virtualenv

Diese Installation installiert übrigens auch automatisch den abhängigen Pyenv.

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

pyenv-virtualenv Einstellungen

Legen Sie nach der Installation Umgebungsvariablen fest

~/.bash_profile


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

Änderungen in Umgebungsvariablen widerspiegeln

source ~/.bash_profile

Lassen Sie uns die installierbare Version mit pyenv anzeigen.

pyenv install --list

Suchen Sie die neueste Version von Python 3 aus der Liste und installieren Sie sie.

pyenv install 3.5.1

Python wird so von www.python.org heruntergeladen und installiert.

$ 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...

Wenn Sie fertig sind, spiegeln Sie die Änderungen in den Umgebungsvariablen erneut wider.

source ~/.bash_profile

Wechseln Sie in Ihr Arbeitsverzeichnis und lassen Sie Python 3.5.1 in diesem Verzeichnis funktionieren.

cd [Beliebiges Arbeitsverzeichnis für Python 3]
pyenv local 3.5.1

Wenn Sie fertig sind, stellen Sie sicher, dass die Umgebung wechselt.

$ cd ~
$ python --version
Python 2.7.10

$ cd [Beliebiges Arbeitsverzeichnis für Python 3]
$ python --version
Python 3.5.1

Pip Update

Ich bin im Begriff, Network X zu installieren, aber ich werde das Python-Paketverwaltungssystem pip verwenden, um es zu installieren. In Python3 ist der Befehl pip standardmäßig angehängt, aber wenn es der Standardbefehl ist, scheint es sich um eine alte Version zu handeln, daher werde ich ihn aktualisieren.

cd [Beliebiges Arbeitsverzeichnis für Python 3]
pip install --upgrade pip
$ pip list
Unterlassung
pip (7.1.2)
Unterlassung

$ pip install --upgrade pip

$ pip list
Unterlassung
pip (8.0.2)
Unterlassung

NetworkX-Installation

NetworkX ist eine Bibliothek für den Umgang mit komplexen Netzwerken in Python.

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

cd [Beliebiges Arbeitsverzeichnis für Python 3]
pip install networkx

Nach der Installation scheint sich das networkx-Modul unter .pyenv / version / 3.5.1 zu befinden.

$ 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

Versuchen Sie, die Konsole in NetworkX anzuzeigen

Versuchen Sie als Test, das Erste Beispiel auf der NetrowkX-Site auszuführen.

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())

Erstellen Sie ein networkx-sample.py-Skript in der in Python3 festgelegten Umgebung und führen Sie es aus.

$ cd [Beliebiges Arbeitsverzeichnis für Python 3]
$ python networkx-sample.py 
['spam', 2, 1]
[(2, 1)]

Die Knoten und Kanten des Netzwerks werden in der Konsole angezeigt.

Installieren Sie matplotlib

Als nächstes werde ich versuchen, das Beispiel zu finden und auszuführen, das das Netzwerk auf der offiziellen Website grafisch anzeigt. Es scheint, dass die Bibliothek matplotlib für die Diagrammanzeige erforderlich ist.

Installieren Sie auch mit dem Befehl pip.

pip install matplotlib

Wenn Sie das Beispiel so ausführen, wie es ist, tritt ein Fehler auf. Zeigt die Fehlermeldung auf diese Seite?

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

(Die Fehlermeldung hat eine lange Zeile, daher wird sie unterbrochen.)

Ich habe es nicht gelöst, auch wenn ich es wie geschrieben gemacht habe, also werde ich nach einer Lösung von Qiita suchen. Referenz: matplotlib usw. kann nicht in eine VirtualEnv-Umgebung importiert werden

Erstellen Sie eine neue matplotlibrc-Datei

~/.matplotlib/matplotlibrc

Eine Zeilenbeschreibung in matplotlibrc

backend : TkAgg

Versuchen Sie, das Netzwerkdiagramm mit NetworkX anzuzeigen

Erstellen Sie ein Python-Skript, indem Sie das Beispiel Random Geometric Graph von der offiziellen Website kopieren.

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()

In Python3 hat es nicht so funktioniert, also habe ich eine Zeile geändert.

original

node_color=p.values()

Ich habe es so geändert. Ich denke, es ist der Unterschied zwischen 2 und 3 Serien, aber es kann an der Version von matplotlib liegen.

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

Probe ausführen

Als ich das Beispiel ausführte, wurde irgendwie ein Netzwerkdiagramm angezeigt und eine random_geometric_graph.png-Datei erstellt.

python RandomGeometricGraph.py

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

Recommended Posts

Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Erstellen Sie eine Python-Entwicklungsumgebung (pyenv / virtualenv) auf einem Mac (Homebrew).
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
Erstellen Sie unter Windows eine anständige Shell- und Python-Umgebung
Erstellen einer Python-Umgebung auf einem Mac
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie eine Python-Umgebung in Centos
Erstellen einer Python-Umgebung auf einem Mac bis zur Verwendung von Jupyter Lab
Erstellen einer virtuellen Umgebung für Python auf dem Mac [Sehr einfach]
VScode-Umgebungskonstruktion (auf Mac) und Diagrammanzeige in Python (@ Browser)
So stellen Sie pyenv unter Amazon Linux und Ubuntu ein, um eine Python 3.6.0-Umgebung zu erstellen
Schritte zum schnellen Erstellen einer umfassenden Lernumgebung auf einem Mac mit TensorFlow und OpenCV
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Ein Memo mit Python2.7 und Python3 in CentOS
Hinweise zum Erstellen von Python und Pyenv auf dem Mac
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Aufbau der Python3 TensorFlow-Umgebung (Mac und pyenv virtualenv)
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Erstellen einer Python-Umgebung mit virtualenv und direnv
[AWS] Erstellen Sie mit CodeStar eine Python Lambda-Umgebung und führen Sie Hello World aus
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie eine Python-Umgebung auf einem Mac (Mountain Lion)
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Versuchen Sie, eine Python- und Anaconda-Umgebung auf einem Mac zu erstellen (mit pyenv, conda).
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
[Venv] Erstellen Sie eine virtuelle Python-Umgebung unter Ubuntu
Fügen Sie Python 2.7.x in pyenv unter Mac OSX 10.15.5 ein
Hinweise zum Festlegen der Pyenv- und Python-Umgebung mit Homebrew unter Mac OS Marvericks
Entfernen Sie die alte Pyenv-Umgebung auf dem Mac und aktualisieren Sie sie
Erstellen Sie eine Python-Ausführungsumgebung unter IBM i
Erstellen Sie mit pyenv unter Ubuntu 12.04 schnell eine Ausführungsumgebung für Python3.4 + Nginx + uWSGI + Flask-Webanwendungen
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Versuch und Irrtum]
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
Installieren Sie Python3 auf einem Mac und erstellen Sie eine Umgebung [Definitive Edition]
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Erstellen Sie eine virtuelle Umgebung mit Anaconda, die über Pyenv installiert ist
Erstellen Sie eine Python-Umgebung für maschinelles Lernen unter Mac OS
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Erstellen Sie eine Python-Entwicklungsumgebung mit Vagrant + Ansible + Fabric
Ich habe eine Python3-Umgebung unter Ubuntu mit direnv erstellt.
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Installieren Sie die Python-Umgebung auf einem lokalen PC (pyenv, venv auf einem Mac).
Erstellen Sie eine Python-Entwicklungsumgebung mit OS X Lion
Erstellen einer numerischen Berechnungsumgebung mit pyenv und miniconda3
Zeichnen Sie mit NetworkX ein Diagramm
Python mit Pyenv und Venv