Подтвердить что ты не робот

Установка PygraphViz в Windows, Python 2.6

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

Поскольку официального релиза для Windows не существует, я пытаюсь его самостоятельно создать, но он не компилируется. Я не первый из них до сталкивается с этой проблемой, но я не мог найти ответа.

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

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++

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

4b9b3361

Ответ 1

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

1) Загрузить источники pygraphviz

2) Измените setup.py, чтобы изменить пути к smth, как

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) в папку с папками сайта Python

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

Ответ 3

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

Q:

Как скомпилировать pygraphviz под Окна? И почему вы не распространяете программа установки pygraphviz Windows?

A:

У нас нет разработки Windows машин, но хотел бы иметь pygraphviz работает на всех платформах. Если у вас есть успех с Windows или быть готовым помочь тестировать и распространять установщик Windows, пожалуйста, напишите нам обратите внимание.

См. также билет 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-месячный билет с исправлением по этому вопросу до сих пор не имеет были включены. Argh!

(*) Я делаю это все больше и больше в последнее время...

Ответ 4

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

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

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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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

Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, Microsoft Visual С++ 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.

Надеется, что это поможет.

Ответ 8

Это работает для меня, 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