2010-05-09 3 views
18

Кто-нибудь там успешно установил PygraphViz в Windows?Установка PygraphViz на Windows, Python 2.6

Поскольку нет официального release for Windows, я пытаюсь сам его построить, но он не скомпилируется. Я не first one до face this issue, но я не мог найти ответ.

Это консольный вывод:

C:\Python26\Lib\site-packages\pygraphviz-0.99.1>c:\python26\python.exe setup.py 
install 
library_path=C:/Program Files/Graphviz2.26.3/lib/debug/dll 
include_path=C:/Program Files/Graphviz2.26.3/include/graphviz 
running install 
running build 
running build_py 
running build_ext 
building 'pygraphviz._graphviz' extension 
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W 
3 /GS- /DNDEBUG "-IC:/Program Files/Graphviz2.26.3/include/graphviz" -Ic:\python 
26\include -Ic:\python26\PC /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win32-2. 
6\Release\pygraphviz/graphviz_wrap.obj 
graphviz_wrap.c 
warning: I don't know what to do with 'runtime_library_dirs': ['C:/Program Files 
/Graphviz2.26.3/lib/debug/dll'] 
error: don't know how to set runtime library search path for MSVC++ 

Любая помощь будет оценен по достоинству!

+0

У меня такая же проблема. Python2.6 на Windows Server 2008 R2 с PygraphViz 0.99.1 и graphviz 2.26.3. Любые идеи ... кто-нибудь? – inspectorG4dget

ответ

3

Вот что сработало для меня в Python 2.7. Я предполагаю, что он должен работать аналогично в Python 2.6. Предпосылка: Установка mingw32 (входит в PythonXY если вы дистрибьютора вы используете его), Graphviz

1) Скачать источники pygraphviz

2) Редактировать setup.py для изменения пути к чему-л, как

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

Обратите внимание, что это \ bin, not \ lib. Связывание с libs не сработало для меня.

3) запустить python setup.py build -c mingw32

Результат шага 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) скопировать результат от всего построенного lib.win32-2.7 (единый вложенную папку под названием pygraphviz) в месте вашего Пайтона -пакета папка

Наслаждайтесь!

+0

Как вы установили MinGW32-xy?Я использую MinGW Minimalist GNU для Windows, и у меня проблемы с ним. Когда я пытаюсь установить pygraphviz, я получаю эту ошибку: cc1.exe: ошибка: непризнанная опция командной строки '-mno-cygwin'. – Seitaridis

+0

Я не помню, но я думаю, что это была часть дистрибутива pythonxy. –

+3

mingw32 с gcc 4.6.x не работает с Python 2.7.2 distutils из-за отсутствия -mno-cygwin. Это известная проблема Python. ptyhonxy еще с 4.5.x. –

4

Я сегодня столкнулся с той же проблемой. Это не так много ответа, но я читал в их FAQ:

Q:

How do I compile pygraphviz under Windows? And why don’t you distribute a pygraphviz Windows installer?

A:

We don’t have Windows development machines but would like to have pygraphviz work on all platforms. If you have success with Windows or would be willing to help test and distribute a Windows installer please drop us a note.

See also ticket 67: https://networkx.lanl.gov/ticket/67

Это, вместе с несколькими оставшимися без ответа на просьбы о помощи на различных форумах, списках рассылки и телеконференций, приводят меня к мысли, что работает PyGraphviz на Windows, это не то, что можно сделать сегодня.

Итак, я сделал следующую очевидную вещь (*) и запустил мой Ubuntu поверх VirtualBox для создания графиков Graphviz с Python. Любопытно, что он не может быть установлен из источника на Ubuntu, если у вас нет самого Graphviz из исходного кода, но он может быть установлен из предварительно созданного пакета с sudo apt-get python-pygraphviz.

Итак, теперь я счастливый пользователь pygraphviz. Или по крайней мере 90% счастливы. PGV показывает предупреждение об отказе os.popen3 на Python 2.6, а 18-month-old ticket с исправлением по этому вопросу все еще не было включено. Argh!

(*) я все больше и больше в последнее время ...

+2

Фактически вы просматриваете фиксированный код на странице https://networkx.lanl.gov/trac/changeset/1073/pygraphviz/trunk/pygraphviz/agraph.py. По-видимому, версия pygraphviz, которую вы установили, старше этого исправления. Вы можете получить последнюю версию по адресу /http://networkx.lanl.gov/download/pygraphviz/ – Aric

1

Если удалить параметр «runtime_library_dirs» от расширения словаря в на линии 147 в setup.py, ваше сообщение об ошибке уходит. Однако он не может найти cgraph.lib. Если вы измените свои настройки на

library_path=r'C:\Program Files\Graphviz2.26.3\lib\debug\lib' 

все соблюдает и устанавливает. Вы можете импортировать модули, но в тот момент, когда вы пытаетесь получить доступ к чему-либо, он взрывается. Рассматривая источник для GraphViz, кажется, что версия Windows - это C# /. NET - возможно, это источник наших проблем?

0

В качестве альтернативы вы можете попробовать использовать easy_install и избегать компиляции. Я установил «распространять», вилку easy_install. Но он также требует pkg-config, и вам нужно либо скомпилировать, либо получить более старую версию. Кроме того, вам также нужно добавить pkg-config в путь приложения.

+1

Это работает только в том случае, если они поставляют версию easy_install для Windows, которая звучит так, как будто нет. Хотя этот пост с мая ... – Falmarri

1

Шляпа же проблема, и я, наконец, получил ее на работу! Проблема была на самом деле в msvc9compiler.py Python (да, вам тоже нужно компилировать VS8 vc9). Ошибка появляется в строке 698 в функции runtime_library_dir_option(). Вместо того, чтобы он выдаст сообщение об ошибке, которые она возвращает ту же строку, как library_dir_option():

def runtime_library_dir_option(self, dir): 
    return "/LIBPATH:" + dir 

Затем компилировать и он должен работать.

17

Я ценю это может быть устаревшей нить в настоящее время, но обновлять его для других в настоящее время удара этой стены, инсталлятор на Christoph Gohlke-х Unofficial Windows Binaries for Python Extension Packages только работал для меня ..

+0

+100: Спасибо. – Oddthinking

+0

+100000 спасибо. – user2543622

+0

Мне не удалось заставить это работать. Затем Ran graphviz-2.38.msi запускал pygraphviz-1.2.win32-py2.7.exe. Все еще получить ошибку импорта 'требует pygraphviz' – SwimBikeRun

0

мне удалось собрать pygraphviz под окнами со следующей установкой:

Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, Microsoft Visual C++ 2008 Express Edition, pygraphvize 1,3 DEV

в setup.py с измененными строками 35 и 36:

include_dirs = r "C: \ Program Files \ Graphviz2.38 \ include" library_dirs = r "C: \ Program Files \ Graphviz2.38 \ lib \ release \ lib "

Сборник работает, и вы получаете рабочий модуль python pygraphviz.

Надеюсь, это поможет.

+0

Я сделал то же самое, но он выбрасывает кучу ошибок сцепления, знаете ли вы, как это исправить? – ascetic652

0

Это работает для меня, Python 2.7 32 бит, PyGraphViz 2.38, VCForPython27, Windows 10 64 бит.

Сначала установите VCForPython27, см. http://aka.ms/vcpython27.

Затем выполните следующую команду, чтобы distutils.msvc9compiler мог найти компилятор VC. (Это требует привилегий администратора. И если ваша система Windows 32 бит, вам нужно настроить ключ реестра.)

reg add HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\9.0\Setup\VC -v productdir -t REG_SZ -d "%LocalAppData%\Programs\Common\Microsoft\Visual C++ for Python\9.0" -f 

Наконец, установите PyGraphViz.

set INCLUDE=C:\Program Files (x86)\Graphviz2.38\include 
set LIB=C:\Program Files (x86)\Graphviz2.38\lib\release\lib 
pip install pygraphviz 
Смежные вопросы