4

After installing the latest graphviz (2.26.3) on my Windows 7 Ultimate 64bit, I receive the following error:

C:>easy_install pygraphviz Searching for pygraphviz Reading http://pypi.python.org/simple/pygraphviz/ Reading http://networkx.lanl.gov/pygraphviz Reading http://networkx.lanl.gov/wiki/download Reading http://networkx.lanl.gov/download/pygraphviz Reading http://sourceforge.net/project/showfiles.php?group_id=122233&package_id=161979 Reading http://networkx.lanl.gov/download Best match: pygraphviz 1.1.dev1947 Downloading http://networkx.lanl.gov/download/pygraphviz/pygraphviz-1.1.dev1947.tar.gz Processing pygraphviz-1.1.dev1947.tar.gz Running pygraphviz-1.1.dev1947\setup.py -q bdist_egg --dist-dir c:\users\jonathan\appdata\local\temp\easy_install-apywwk\pygraphviz-1.1.dev1947\egg-dist-tmp-nvd0pa Trying pkg-config Failed to find pkg-config Trying dotneato-config Failed to find dotneato-config

Your graphviz installation could not be found.

Either the graphviz package is missing on incomplete (binary packages graphviz-dev or graphviz-devel missing?).

If you think your installation is correct you will need to manually change the include_path and library_path variables in setup.py to point to the correct locations of your graphviz installation.

The current setting of library_path and include_path is: library_path=None include_path=None

error: None

Any thoughts how to fix this?
This seems to be a different problem than the one described here.
Has anyone had success in installing pygraphviz on Windows? How?

Community
  • 1
  • 1
Jonathan Livni
  • 101,334
  • 104
  • 266
  • 359
  • 1
    I have followed these [instructions](http://bullogger.wordpress.com/2010/02/12/) and managed to install pygraphviz on my machine. – Seitaridis Nov 25 '11 at 16:19
  • I was able to do it and give my steps here: https://stackoverflow.com/a/45362845/714413 – darkhipo Jul 28 '17 at 00:30
  • You can download it: https://github.com/CristiFati/Prebuilt-Binaries (https://stackoverflow.com/a/54890705/4788546). – CristiFati Apr 21 '20 at 19:28

5 Answers5

5

Here's what worked for me. Precondition: Install mingw32 (included in pythonxy distrib if you're using it), Graphviz

1) Download pygraphviz sources

2) Edit setup.py to change paths to smth like

library_path=r"c:\Program Files (x86)\Graphviz 2.28\bin"
include_path=r"c:\Program Files (x86)\Graphviz 2.28\include\graphviz"

Note that it's \bin, not \lib. Linking with libs didn't work for me.

3) run python setup.py build -c mingw32

Result of step 3:

c:\Python27\Lib\site-packages\pygraphviz-1.1>python setup.py build -c mingw32
library_path=c:\Program Files (x86)\Graphviz 2.28\bin
include_path=c:\Program Files (x86)\Graphviz 2.28\include\graphviz
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\MinGW32-xy\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-Ic:\Program Files (x86)\G
raphviz 2.28\include\graphviz" -Ic:\Python27\include -Ic:\Python27\PC -c pygraph
viz/graphviz_wrap.c -o build\temp.win32-2.7\Release\pygraphviz\graphviz_wrap.o
pygraphviz/graphviz_wrap.c: In function 'agattr_label':
pygraphviz/graphviz_wrap.c:2855:5: warning: return makes integer from pointer wi
thout a cast
writing build\temp.win32-2.7\Release\pygraphviz\_graphviz.def
C:\MinGW32-xy\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\py
graphviz\graphviz_wrap.o build\temp.win32-2.7\Release\pygraphviz\_graphviz.def "
-Lc:\Program Files (x86)\Graphviz 2.28\bin" -Lc:\Python27\libs -Lc:\Python27\PCb
uild "-Wl,-Rc:\Program Files (x86)\Graphviz 2.28\bin" -lcgraph -lcdt -lpython27
-lmsvcr90 -o build\lib.win32-2.7\pygraphviz\_graphviz.pyd

4) copy the result from the just built lib.win32-2.7 (single sub-folder called pygraphviz) into your Python's site-packages folder

Enjoy!

Andrew Filev
  • 106
  • 1
  • 2
3

for windows 64-bit:

similarly to what Andrew Filev wrote with the exceptions that you NEED to use pythonxy, and you NEED to install Graphviz in a folder that does not contain spaces (including the root folder of the program: "Graphviz 2.28"=> "Graphviz2.28"

so:

1) uninstall python 2.7

2) install pythonxb (http://code.google.com/p/pythonxy/wiki/Downloads)

3) install Graphviz 2.28 (the only one I tested) making sure there are no spaces in the installation path. A good example would be: "C:\Graphviz2.28"

4) download pygraphviz as a zip (the sources) and unzip.

5) modify the setup.py near the top to have

library_path=r"c:\Graphviz2.28\bin"
include_path=r"c:\Graphviz2.28\include\graphviz"

6) run: python setup.py build -c mingw32

7) after seeing this result (much nicer than the one posted earlier):

>python setup.py build -c mingw32
library_path=c:\Graphviz2.28\bin
include_path=c:\Graphviz2.28\include\graphviz
running build
running build_py
running build_ext

copy the result from the just built lib.win32-2.7 (single sub-folder called pygraphviz) into your Python's site-packages folder which you might have to make yourself + bind the new root folder of pygraphviz to the environment variable PYTHONPATH

For example the final library could be situated here:

C:\Python27\libs\site_packages\pygraphviz
Gabriel
  • 1,078
  • 1
  • 8
  • 15
1

I just spent half an hour trying to figure out why the answers above weren't working for me and it turns out they are out-of-date as library_path and include_path are no longer the names of the relevant variables. Here's what worked for me on Windows 7, 32-bit Python 2.7:

setup.py

library_dirs = r'C:\PROGRA~2\Graphviz2.38\bin'
include_dirs = r'C:\PROGRA~2\Graphviz2.38\include'

then run python setup.py build -c mingw32

Tom
  • 22,301
  • 5
  • 63
  • 96
1

An old question but I've just done this and couldn't find a specific answer for Python 3 and I didn't have to do half of the stuff mentioned above. So here it is. I'm on Win7 64bit, 64bit Python3.4 and using a virtual environment. I'm using it to generate database schematics from django models using django-extensions, pretty useful!

  1. Download graphviz-2.38.msi from the graphviz Graphviz site
  2. Install the msi (I used cmd with Admin priviledges)

    msiexec /a graphviz-2.38.msi

  3. For some reason this doesn't add Graphviz to your system path, so you need to do that manually. For me this was

    SET PATH=%PATH%;C:\Program Files (x86)\Graphviz2.38\bin

  4. I then had to get a specific Windows pygraphviz wheel from this really useful site, specifically pygraphviz-1.3.1-cp34-none-win_amd64.whl

  5. Once I had this I then installed it using pip/mingw32 to my virtual environment

    $ pip install pygraphviz-1.3.1-cp34-none-win_amd64.whl

Now it's all working great.

DrBuck
  • 822
  • 7
  • 22
1

PyGraphviz uses an C language extension module (generated by SWIG). So you need a compiler to build the extension. You might need the same compiler that built your Python executable.

There is some information in this question Building Python C extension modules for Windows

and also at http://www.swig.org/Doc1.3/Python.html#Python_nn12

Community
  • 1
  • 1
Aric
  • 24,511
  • 5
  • 78
  • 77