web-dev-qa-db-fra.com

Installation de pygraphviz sur Windows 10 64 bits, Python 3.6

J'essaie d'installer pygraphviz sur Windows 10. Il existe de nombreuses solutions à ce problème en ligne, mais aucune n'a encore fonctionné pour moi. Le problème précis que j'ai est avec cela via le carnet jupyter ->

[1] import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout

[2]G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_Edge(1,2)
G.add_Edge(1,3)
G.add_Edge(2,4)

nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
    node_color=range(len(G)),
    prog='dot')
plt.show()

J'obtiens les erreurs suivantes après [2]:

ModuleNotFoundError                       Traceback (most recent call last)
C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py 
in 
pygraphviz_layout(G, prog, root, args)
    254     try:
--> 255         import pygraphviz
    256     except ImportError:

ModuleNotFoundError: No module named 'pygraphviz'

et

ImportError                               Traceback (most recent call last)
<ipython-input-2-86a15892f0f0> in <module>()
  9 G.add_Edge(2,4)
 10 
---> 11 nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
 12         node_color=range(len(G)),
 13         prog='dot')

C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py in graphviz_layout(G, prog, root, args)
226 
227     """
--> 228     return pygraphviz_layout(G,prog=prog,root=root,args=args)
229 
230 def pygraphviz_layout(G,prog='neato',root=None, args=''):

C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py in pygraphviz_layout(G, prog, root, args)
256     except ImportError:
257         raise ImportError('requires pygraphviz ',
--> 258                           'http://pygraphviz.github.io/')
259     if root is not None:
260         args+="-Groot=%s"%root

ImportError: ('requires pygraphviz ', 'http://pygraphviz.github.io/')

Voici ce que j'ai essayé de résoudre ce problème

(1) Installation régulière de pip: "pip install pygraphviz" C'est l'erreur que j'obtiens à la fin. [~ # ~] edit [~ # ~] J'obtiens la même erreur même si je lance cmd en tant qu'administrateur.

Command "C:\Users\name\Anaconda3\python.exe -u -c "import setuptools, 
tokenize;__file__='C:\\Users\\name~1\\AppData\\Local\\Temp\\pip-build-
n81lykqs\\pygraphviz\\setup.py';f=getattr(tokenize, 'open', open)
(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, 
__file__, 'exec'))" install --record C:\Users\name~1\AppData\Local\Temp\pip-
b3jz1lk5-record\install-record.txt --single-version-externally-managed --
compile" failed with error code 1 in C:\Users\name~1\AppData\Local\Temp\pip-
build-n81lykqs\pygraphviz\

(2) Téléchargement et installation de graphviz-2.38.msi, puis téléchargement des deux versions 64 bits de la roue. Voilà le résultat.

C:\Users\name\Anaconda3>pip install pygraphviz-1.3.1-cp34-none-
win_AMD64.whl
pygraphviz-1.3.1-cp34-none-win_AMD64.whl is not a supported wheel on this 
platform.

C:\Users\name\Anaconda3>pip install pygraphviz-1.3.1-cp27-none-
win_AMD64.whl
pygraphviz-1.3.1-cp27-none-win_AMD64.whl is not a supported wheel on this 
platform.

Ce que j'aimerais essayer, mais je ne sais pas comment faire correctement:

Modifiez setup.py. J'ai beaucoup lu sur les gens qui trouvent des solutions pour changer les chemins, mais je ne sais pas vraiment comment faire. Cette méthode semble très complexe.

Merci pour toute aide/perspicacité!

25
adurbin

Les réponses les plus votées semblaient installer graphviz, plutôt que pygraphviz.

Si vous utilisez un environnement conda, vous pouvez essayer d'utiliser ce canal:

conda install graphviz pygraphviz -c alubbock

Je l'ai essayé avec networkx 2.1, cela a bien fonctionné.

5
Tom Hanks

Mise à jour du dépôt: [GitHub]: CristiFati/Prebuilt-Binaries - (master) Prebuilt-Binaries/Windows/PyGraphviz.
Ajouté . Whl s (win_AMD64, win32) pour Python:

  • .7
  • .6
  • .5

Pour Python 2.7, ils sont déjà construits: [UCI.LFD]: Binaires Windows non officiels pour Python Packages d'extension - PyGraphviz, une interface pour Graphviz présentation graphique et package de visualisation. .

Remarques :

  • Dans certains (je suppose, la plupart des) cas, une installation Graphviz sera requise sur le système où PyGraphviz fonctionne sur , car PyGraphviz utilise certains des outils (exécutables) de Graphviz. Ils peuvent être téléchargés ou construits (ils ne doivent pas correspondre à l'architecture PyGraphviz (2bit, 64bit), car ils sont invoqués)
  • De plus, un bug (présent dans les versions précédentes) a été corrigé
  • Vérifiez [SO]: pygraphviz 1.5 Edge par défaut sans flèche? (@ Réponse de CristiFati) pour plus de détails

Quiconque veut en savoir plus sur le processus de construction, lisez la suite !



1. Intro

Près de 2 ans plus tard, et le problème (enfin, pas exactement comme dans la question) persiste toujours.

Je veux commencer par souligner la différence entre les 2 packages:

Dans Anaconda environnement, [SO]: Installation de PyGraphviz sur Windows 10 64 bits, Python 3.6 (@ TomHanks's answer) fonctionne parfaitement .

pygraphwiz ne dispose que pour le téléchargement d'un fichier archive (. Zip, dans ce cas), ce qui signifie qu'il contient ([~ ~ ~] c [~ # ~]/C++) sources.

Quelques mots sur les paquets (. Whl s) dont les noms contiennent des choses comme cp34-none-win_AMD64 (vérifiez [SO]: que signifie le nom de version 'cp27' ou 'cp35' en Python? (@ réponse WayneWerner) pour plus de détails):

  • Ils contiennent des binaires (. So ou . Pyd (. Dll)), qui sont liés à un spécifique Python bibliothèque
    • Ils sont destinés à fonctionner uniquement avec cette version Python (donc 4 n'est pas censée fonctionner) avec Python 3.6 )
    • Même s'il est en quelque sorte un "outsmarts" pip et parvient à installer un tel package (ce n'est pas si difficile, en fait), il échouera au moment de l'importation, ou pire, il a une forte probabilité de planter - Python

Maintenant, de nombreux packages ont des binaires prédéfinis pour les versions les plus courantes Python fonctionnant sur divers OS es (par exemple [PyPI] : mysql-connector-python - Télécharger des fichiers ), mais tout comme beaucoup ne le font pas, et ceux-ci ne contiennent que des sources. Malheureusement, PyGraphviz est dans le 2dakota du Nord Catégorie. Pour ces derniers, pip install volonté:

  • Téléchargez les sources
  • Construisez les sources localement
    • Un C (C++) compilateur est requis , généralement:
      • gcc sur Nix
      • VStudio sur Win
    • Ils pourraient avoir d'autres dépendances
  • Installez les artefacts construits (fichiers binaires et fichiers . Py (c))

En remarque: pip -v ... active le mode verbose pour la commande actuelle, ce qui est extrêmement pratique en cas d'erreur d'installation .

Retour à notre problème: Python 3.6 a besoin VStudio 2015 ( [Python. Wiki]: WindowsCompilers ).
C'est un sujet très vaste, j'ai couvert certaines parties dans:

Vous devez les vérifier avant de continuer et également les garder ouverts, car vous en aurez certainement besoin dans les prochaines étapes .

J'ai Communauté VStudio 2015 (parmi de nombreuses autres versions) installé, vous devez également l'installer, c'est gratuit ( [MS.VStudio]: Vous voulez toujours une version plus ancienne? ).

PyGraphviz dépend de [Graphviz]: logiciel de visualisation graphique . Ainsi, au moment de la construction, il aura besoin de (parties de) Graphviz (qui a également d'autres dépendances propres) pour être déjà construit. Malheureusement, je n'ai pas pu trouver de binaires précompilés (il y a [Graphviz]: Paquets Windows - graphviz-2.38.Zip , mais cela n'aide pas), donc il devra être construit manuellement.

Avant d'aller plus loin:

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" -c "import pygraphviz"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pygraphviz'

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> dir /b
other
src

Ceci est mon top dir, toutes les sources sont téléchargées dans le src dir, les binaires seront placé dans le répertoire bin.

2. Construire Graphviz

Avant de commencer, je tiens à mentionner que je compte beaucoup sur Cygwin (vous n'êtes pas obligé de le faire), et certains de mes outils y sont installés, donc je vais alterner entre Cygwin et cmd terminaux (ce qui peut prêter à confusion).

[Graphviz]: Instructions de construction de Graphviz pour Windows indique:

Pour construire sous Windows:

(Versions Graphviz ≥ 2,41)

Tout d'abord, à la racine du référentiel, effectuez la mise à jour du sous-module git --init. Cela téléchargera tous les sous-modules, qui sont principalement les dépendances de la version Windows. Ensuite, ajoutez le répertoire windows\dependencies\graphviz-build-utilities à votre CHEMIN (et redémarrez Visual Studio ou l'invite avec laquelle vous exécutez msbuild après cela). Ce dossier contient les outils Bison, Flex et SED (et futurs ajouts) avec des versions testées. Si tout allait bien, les dépendances sont maintenant configurées et vous pouvez construire Graphviz.

Tout d'abord, nous devons tout télécharger:

[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git clone https://gitlab.com/graphviz/graphviz.git .
Cloning into '.'...
remote: Enumerating objects: 71728, done.
remote: Counting objects: 100% (71728/71728), done.
remote: Compressing objects: 100% (19331/19331), done.
remote: Total 71728 (delta 52200), reused 71681 (delta 52157)
Receiving objects: 100% (71728/71728), 163.79 MiB | 480.00 KiB/s, done.
Resolving deltas: 100% (52200/52200), done.
Checking out files: 100% (3870/3870), done.
[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git submodule update --init
Submodule 'dependencies/criterion' (https://github.com/Snaipe/Criterion.git) registered for path 'dependencies/criterion'
Submodule 'windows/dependencies/graphviz-build-utilities' (https://github.com/ErwinJanssen/graphviz-build-utilities.git) registered for path 'windows/dependencies/graphviz-build-utilities'
Submodule 'windows/dependencies/libraries' (https://github.com/ErwinJanssen/graphviz-windows-dependencies.git) registered for path 'windows/dependencies/libraries'
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/dependencies/criterion'...
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/graphviz-build-utilities'...
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/libraries'...
Submodule path 'dependencies/criterion': checked out '301d143ea42c024f22b673b69c72a4cb3c8d151f'
Submodule path 'windows/dependencies/graphviz-build-utilities': checked out '050fff84ce195e0740878748760fd801eeb07b23'
Submodule path 'windows/dependencies/libraries': checked out '141d3a21be904fa8dc2ae3ed01d36684db07a35d'
[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git show head
commit 89292b5945933b1501293c04894ed9cf886241be (HEAD -> master, Origin/master, Origin/HEAD)
Merge: 429d43615 97811bd35
Author: Stephen C North <[email protected]>
Date:   Mon Feb 4 08:09:40 2019 -0500

    Merge branch 'wasbridge/graphviz-master' into HEAD

[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git status
On branch master
Your branch is up to date with 'Origin/master'.

nothing to commit, working tree clean

Vous vous retrouverez avec un répertoire contenant ~ 320 Mio de contenu. Le répertoire contient un fichier graphviz.sln, qui est un fichier de solution VStudio (2015) qui contient 6 = projets.

En regardant Anaconda ou Python 2.7pygraphviz (intégré) paquet, cela ne dépend que de cgraph.dll, qui à son tour dépend de - cdt.dll, donc seuls les 2 projets nous concernent. Notez que ces 2 projets pourraient ne pas avoir besoin de tous les sous-modules git ​​(donc le dir pourrait être réduit), mais je n'ai pas approfondi.

Malheureusement, les projets ne sont configurés que pour 2 bits (Win32 plateforme). Le 64 bits doit être ajouté manuellement (je l'ai fait depuis IDE VStudio - et aussi décrit le processus dans une de mes réponses auxquelles j'ai fait référence). Après avoir enregistré les projets, ils seront affichés comme modifiés par git:

[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git status
On branch master
Your branch is up to date with 'Origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

        modified:   lib/cdt/cdt.vcxproj
        modified:   lib/cgraph/cgraph.vcxproj
        modified:   windows/dependencies/graphviz-build-utilities (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

Le 3rd l'élément est parce que je devais réinitialiser certaines autorisations de sécurité sur 2 exécutables (utilisé lors de la construction cgraph):

  • bison.exe
  • flex.exe

qui n'ont pas été définis correctement (très probablement, en raison de Cygwin).

Vous pouvez construire les 2 projets à partir de IDE , mais j'ai choisi la ligne de commande ( [Ms.Docs]: référence de ligne de commande MSBuild ) car je le trouve plus flexible:

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> "c:\Install\x86\Microsoft\Visual Studio Community\2015\vc\vcvarsall.bat" x64

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> set PATH=%PATH%;%CD%\src\graphviz\windows\dependencies\graphviz-build-utilities

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> msbuild src\graphviz\lib\cdt\cdt.vcxproj /t:Rebuild /p:Platform=x64;Configuration=Release;SolutionDir=%CD%\src\graphviz\;OutDir=%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz\ >build_cdt_064.txt 2>&1

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> echo %errorlevel%
0

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> dir /b
bin
build_cdt.txt
other
src

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> msbuild src\graphviz\lib\cgraph\cgraph.vcxproj /t:Rebuild /p:Platform=x64;Configuration=Release;SolutionDir=%CD%\src\graphviz\;OutDir=%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz\ >build_cgraph_064.txt 2>&1

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> echo %errorlevel%
0

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> dir /b "bin\Win\dynamic\064\UCRTv140\md\Release\graphviz"
cdt.dll
cdt.dll.lastcodeanalysissucceeded
cdt.exp
cdt.lib
cgraph.dll
cgraph.dll.lastcodeanalysissucceeded
cgraph.exp
cgraph.lib

Nous avons donc tout ce dont nous avons besoin (2 . Lib et 2 . Dll fichiers) pour continuer.

3. Construire PyGraphviz

PyGraphviz les sources sont (téléchargées depuis [GitHub]: pygraphviz/pygraphviz - (pygraphviz-1.5) pygraphviz-pygraphviz-1.5.Zip et) déballées dans src/pygraphviz/pygraphviz-pygraphviz-1.5.

Un ajustement supplémentaire est nécessaire pour Graphviz (probablement cela se fait dans le cadre d'un autre projet - une étape install): préparation des fichiers d'en-tête:

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> mkdir include\graphviz

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> copy src\graphviz\lib\cdt\cdt.h include\graphviz
        1 file(s) copied.

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> copy src\graphviz\lib\cgraph\cgraph.h include\graphviz
        1 file(s) copied.

Malheureusement, PyGraphviz ne pas construit OOTB , en raison de [GitHub]: pygraphviz/pygraphviz - Python 3 support . Pour résoudre ce problème, [GitHub]: eendebakpt/pygraphviz - Solution de contournement pour PyIOBase_Type pour Python2 sur win doit être appliqué. Je l'ai adapté pour fonctionner avec les sources actuelles (car cela ne fonctionne pas OOTB , ainsi: X ( ) pour graphviz_wrap.cpp uniquement :

pygraphviz-1.5-all-pyiobase_b85d12ac22d39063f7dbcc396e825c563431e352.patch:

--- pygraphviz/graphviz_wrap.c.orig 2018-09-10 16:07:12.000000000 +0300
+++ pygraphviz/graphviz_wrap.c  2019-02-26 18:05:20.281741400 +0200
@@ -2988,7 +2988,18 @@


 #if PY_VERSION_HEX >= 0x03000000
-extern PyTypeObject PyIOBase_Type;
+static PyObject *PyIOBase_TypeObj;
+
+static int init_file_emulator(void)
+{
+  PyObject *io = PyImport_ImportModule("_io");
+  if (io == NULL)
+    return -1;
+  PyIOBase_TypeObj = PyObject_GetAttrString(io, "_IOBase");
+  if (PyIOBase_TypeObj == NULL)
+    return -1;
+  return 0;
+}
 #endif


@@ -3449,7 +3460,7 @@
   {
 #if PY_VERSION_HEX >= 0x03000000 || defined(PYPY_VERSION)
 #if !defined(PYPY_VERSION)
-    if (!PyObject_IsInstance(obj0, (PyObject *)&PyIOBase_Type)) {
+    if (!PyObject_IsInstance(obj0, PyIOBase_TypeObj)) {
       PyErr_SetString(PyExc_TypeError, "not a file handle");
       return NULL;
     }
@@ -3523,7 +3534,7 @@
   {
 #if PY_VERSION_HEX >= 0x03000000 || defined(PYPY_VERSION)
 #if !defined(PYPY_VERSION)
-    if (!PyObject_IsInstance(obj1, (PyObject *)&PyIOBase_Type)) {
+    if (!PyObject_IsInstance(obj1, PyIOBase_TypeObj)) {
       PyErr_SetString(PyExc_TypeError, "not a file handle");
       return NULL;
     }
@@ -6051,6 +6062,12 @@

   SWIG_InstallConstants(d,swig_const_table);

+#if PY_VERSION_HEX >= 0x03000000
+  if (init_file_emulator() < 0) {
+    return NULL;
+  }
+#endif
+
   PyDict_SetItemString(md,(char*)"cvar", SWIG_globals());
   SWIG_addvarlink(SWIG_globals(),(char*)"Agdirected",Swig_var_Agdirected_get, Swig_var_Agdirected_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"Agstrictdirected",Swig_var_Agstrictdirected_get, Swig_var_Agstrictdirected_set);

C'est un diff (patch). Voir [SO]: exécuter/déboguer un Django application UnitTests du menu contextuel du clic droit de la souris dans PyCharm Community Edition? (@ Réponse de CristiFati) ( Application de correctifs trunner section) pour savoir comment appliquer des correctifs sur Win (en gros, chaque ligne commençant par un signe "+" entre et chaque ligne commençant par un "-" signe s'éteint).

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> set _TOP_DIR=%CD%

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> pushd src\pygraphviz\pygraphviz-pygraphviz-1.5

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> pushd pygraphviz && "c:\Install\x64\Cygwin\Cygwin\AllVers\bin\patch.exe" -p 1 -buNi ..\pygraphviz-1.5-all-pyiobase_b85d12ac22d39063f7dbcc396e825c563431e352.patch && popd
patching file graphviz_wrap.c

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> echo %errorlevel%
0

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" setup.py install --include-path=%_TOP_DIR%\include --library-path=%_TOP_DIR%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz >%_TOP_DIR%\install_pygraphviz_064.txt 2>&1

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> echo %errorlevel%
0

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> popd

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> set PATH=%PATH%;%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q045093811]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" -c "import pygraphviz;print(dir(pygraphviz), \"\n\", pygraphviz.graphviz._graphviz)"
['AGraph', 'Attribute', 'DotError', 'Edge', 'ItemAttribute', 'Node', '__all__', '__author__', '__builtins__', '__cached__', '__date__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__revision__', '__spec__', '__version__', 'absolute_import', 'agraph', 'division', 'graphviz', 'print_function', 'release', 'test', 'tests', 'version']
 <module '_graphviz' (e:\Work\Dev\VEnvs\py_064_03.06.08_test0\lib\site-packages\pygraphviz\_graphviz.cp36-win_AMD64.pyd)>

Comme vu, le module a été importé avec succès.

En remarque, les dépendances 2 . Dll (de la section précédente) doivent être disponibles lorsque le module est importé, donc leur répertoire est ajouté à % PATH%.
Bien sûr, ce n'est qu'une solution (boiteuse) (gainarie), cela ne devrait pas se produire à chaque fois que l'on doit travailler avec le paquet.

Je ne sais pas (encore) comment demander à setup.py de les copier également dans le répertoire build/install du paquet, donc comme alternative (également une solution), il faut les copier manuellement dans - pygraphviz répertoire d'installation ( à côté de _ graphviz.cp36-win_AMD64.pyd, qui est (dans mon cas ): "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\lib\site-packages\pygraphviz").

4. Raccourci

Étant donné que l'ensemble du processus est complexe et nécessite de nombreuses interventions manuelles et hacks, j'ai réussi à créer (avec des modifications mineures setup.py) le package (wheel).

Je ne connais pas de moyen simple de le rendre public, donc (même si je sais que c'est une mauvaise pratique), je l'ai téléchargé sur [GitHub]: CristiFati/Prebuilt- Binaires - (maître) Binaires préconstruits/Windows/PyGraphviz/pygraphviz-1.5-cp36-cp36m-win_AMD64.whl .
Vous pouvez le télécharger, puis l'installer comme (c'est à sens unique):

"C:\Path\to\Python-3.6-AMD64\pip" install "C:\Path\to\downloaded\pygraphviz-1.5-cp36-cp36m-win_AMD64.whl"

Remarque : Cela fonctionne également pour les environnements Anaconda!

5
CristiFati

Résolu sur Windows 10 64 bits et Python 3.6.

Étapes:

  1. Télécharger Graphviz pour Windows depuis le site graphiviz.
  2. Ajoutez le chemin bin Graphviz C:\Program Files (x86)\Graphviz2.38\bin dans votre chemin Windows.
  3. Fermez et rouvrez vos terminaux afin que le changement de chemin soit reconnu.
  4. Téléchargez la roue graphviz python 3.6 .
  5. Installez la roue graphviz.

    pip install graphviz-0.8.3-py2.py3-none-any.whl

  6. Terminé!

2
dot-nix

Voici ce qui a fonctionné pour moi:

Gagnez 7 AMD64

  • Installer compilateur MSFT C++ .
  • Installez Anaconda pour Win AMD64, Python .
  • Installez graphviz pour Win .
  • Ajoutez C:\Program Files (x86)\Graphviz2.38\bin à votre variable d'environnement PATH.
  • Télécharger pygraphviz-1.3.1-cp34-none-win_AMD64.whl .
  • Créez un environnement Conda avec Python version 3.4: conda create --name digraphs python=3.4 anaconda.
  • Entrez dans l'environnement: activate digraphs.
  • Installez pygraphviz à l'aide de pip: pip install pygraphviz-1.3.1-cp34-none-win_AMD64.whl.
  • Exemple d'exécution: python ./gviz_simple.py.
  • Quittez l'environnement: deactivate

J'ai mis des trucs sur github à ce sujet. C'est désordonné, utilisez à vos risques et périls: https://github.com/darkhipo/Easy-Digraph-Draw

1
darkhipo