schegloff ([info]schegloff) wrote,
@ 2006-10-03 22:37:00


7 replies, 3 authors
Итог страданий с Python + networkx + matplotlib
Порекомендовал мне [info]anton_y_k библиотечку к Питону для обсчета и визуализации произвольных графов, networkx. Хорошая штука, в топах по питоновской графике на del.icio.us. Вот только у меня вышло по Жванецкому - "включаешь - не работает". networkx использует для отрисовки графиков другую библиотеку, matplotlib (тоже "топовую", разумеется), а та помимо питоновских модулей содержит собственные dll (*.pyd). Так вот, на этих самых dll-ках ее у меня и клинило - "не могу найти нужную dll", и все тут.

Как бы поступил старый мудрый хакер? Вспомнил молодость - и сразу бы полез внутрь этих *.pyd файлов в поисках dll, которых им не хватает.

А как поступил видный сетевой деятель, то есть я? Пол-дня убил на изучение форумов, баг-листов, переустановку разных версий, экспериментов с разными математическими библиотеками (да, matplotlib сама по себе тоже не работает), обновление самого Питона с 2.4.2 до 2.4.3... В результате убедился, что проблема никуда не девается при любых изменениях в Питоне, и тут на меня снизошло просветление. А именно, см. предыдущий параграф.

После этого осталось только разыскать лежащий в нескольких местах (но не в Windows/System) файл msvcp71.dll - и все заработало.

Что меня в этой истории больше всего поразило - так это распространенность MS Visual C++. То есть и у разработчиков библиотеки, и у ее пользователей под виндами нужный файл оказывался на машине сам собой, так что его даже не сочли нужным упомянуть в руководстве по установке и включить в инсталлятор! Как я сам до сих пор обходился без этого мегафайла, ума не приложу.

Практический результат - теперь у меня есть все необходимое для рисования всяческих сетевых картинок. Кроме свободного времени, которое вчистую ушло на борьбу с Майкрософт :)


[info]vitus_wagner
2006-10-03 05:48 pm UTC (link)
Видимо, если серьезно работать с Python, нужно завести себе на машине компилятор (благо минимальный комплект visual C раздают бесплатно с сайта микрософт) и скачивать эти расширения только в исходниках, и собирать самому. Лично я уже не помню, когда я последний раз брал в бинарниках программу не у уважаемой фирмы (и то, это крайний случай под названием "исходников не дают") или не у производителя соответствующей операционной системы. Производитель ОС - это единственный кому я доверяю на предмет того, что всё будет собрано правильно, и правильно прописаны зависимости. Правда, я почти не пользуюсь Windows. Но насколько пользуюсь - там ситуация та же самая. Microsoft свою систему знает. А остальные - даже такие солидные разработчики, как Adobe - как повезет.

К сожалению, культура оформления программ (в том числе и культура формирования дистрибутивов) в Python-сообществе оставляет желать лучшего. В Perl- или Tcl-сообществе ситуация несколько лучше, в PHP-сообществе, насколько я знаю, хуже.

Вообще, в качестве компилятора под Win32 я бы скорее рекомендовал в данной ситуации MingW32, чем Visual C. Единственное преимущество Visual C, которое я знаю, это компилятор ресурсов, нормально поддерживающий русский язык в Version Info.

(Reply to this) (Thread)

То же самое относится к любой серьезной работе :)
[info]schegloff
2006-10-04 03:41 am UTC (link)
Если MS раздает компайлер VCP бесплатно, тогда понятно, откуда У ВСЕХ энта базовая DLL, а также требования "C compiler" в дистрибутивах некоторых питоновских библиотек. Стандарт де-факто, о котором я в силу отсталости (как-никак, 10-летняя пауза в программировании) даже не слышал.

Что же касается моих собственных упражнений с Питоном (равно как и с PHP), то дальше любительских забав они вряд ли уйдут. Поэтому превращаться в юниксоида пока не буду - затраты/выпуск не соответствуют.

(Reply to this) (Parent)


[info]zeppelinux
2006-10-03 08:53 pm UTC (link)
я убил 2 дня на интеграцию JSF + Tomcat + Apache Http Serv.
Когда дошло дело до последнего (JSF) оказалось (форумы, блоги, ...), что Tomcat не поддерживает JSP 1.2 т.е. с последним JSF работать не может... вернее может, но JSF нужно переделать в JSF + Facelets... переделывал, устанавливал, исправлял, ... В Итоге решил установить JBoss:)
Мы - жертвы современных языков программирования и высококих технологий.

(Reply to this) (Thread)

Вот именно - "форумы, блоги"
[info]schegloff
2006-10-04 03:48 am UTC (link)
Столкнувшись с РЕАЛЬНОЙ, хотя и пустяковой проблемой, я вдруг понял, насколько все-таки ТРУДНО сегодня находить в Сети КОНКРЕТНЫЕ РЕШЕНИЯ. Несмотря на гугли, блогры и деликатесы. То есть формирование хотя бы информационной части СГО (исключительно "решил задачу сам - выложи в СГО") - штука ПРАКТИЧЕСКИ ПОЛЕЗНАЯ уже сегодня.

А что касается современных языков, то Питон и PHP - заметный шаг вперед по сравнению с Visual C++. Уровень освоения языка "до первой программы, делающей что тебе надо" в 5 часов - хороший результат, на C++ я вообще НИЧЕГО не смог написать.

(Reply to this) (Parent) (Thread)

Re: Вот именно - "форумы, блоги"
[info]zeppelinux
2006-10-04 07:04 am UTC (link)
"решил задачу сам - выложи в СГО" - очень актуальная вещь.

(Reply to this) (Parent) (Thread)

Re: Вот именно - "форумы, блоги"
[info]schegloff
2006-10-04 08:37 am UTC (link)
Ну так поэтому я сюда такой офтопик (по отношению к обычным политическим темам моего ЖЖ) и выложил.
Сейчас вот сделал поиск на блогс.яндексе - по крайней мере, по теме matplotlib теперь там можно хотя бы МЕНЯ найти. А раньше вообще глухо было, как в танке.

С другой стороны, спец я в Питоне, вообще говоря, никакой. Настоящие спецы (есть ведь такие, сам слышал про героев, по 2000 строк отлаженного кода в день выдававших) - то ли блогов не ведут, то ли о таких простых вещах, как пользуемые библиотеки, в них не пишут. А ведь НАДО!

Придется клич кликнуть...

(Reply to this) (Parent) (Thread)

Re: Вот именно - "форумы, блоги"
[info]zeppelinux
2006-10-04 08:45 am UTC (link)
интересная особенность - в последнее время делая запросы на спец. темы все чаще натыкаюсь на китайские сайты, причем обьем доступной информации по некоторым вопросам (на китайском, но примеры кода слава богу пока нет:) убирает даже англоязычные сайты - целые книги переведенные и доступные на халяву тогда как англоязычную версию можно купить только за деньги и-то не везде...

(Reply to this) (Parent)