Windows-сборка
Невероятным, прямо героическим усилием мне удалось собрать экзешник под Windows не имея компьютера с Windows. Для этого я поставил Python под wine: wine msiexec /i python-2.5.2.msi .
Затем скачал PyInstaller, распаковал
Сконфигурировал:
Сделал spec-файл:
И собрал экзешник:
Вот результат моих усилий, под wine-ом он работает, прошу проверить счастливых обладателей Windows.
Затем скачал PyInstaller, распаковал
anton@laptop:~/distr/win$ unzip pyinstaller_1.3.zip
Сконфигурировал:
anton@laptop:~/distr/win/pyinstaller-1.3$ wine ~/.wine/drive_c/Python25/python.exe Configure.py
Сделал spec-файл:
anton@laptop:~/distr/win/pyinstaller-1.3$ wine ~/.wine/drive_c/Python25/python.exe Makespec.py \\
-F -K -w -o /home/anton/programing/vkontakte_svn/ \\
/home/anton/programing/vkontakte_svn/vkontakte-getter/python/vkontakte_getter.py
И собрал экзешник:
anton@laptop:~/distr/win/pyinstaller-1.3$ wine ~/.wine/drive_c/Python25/python.exe Build.py \\
/home/anton/programing/vkontakte_svn/vkontakte_getter.spec
Вот результат моих усилий, под wine-ом он работает, прошу проверить счастливых обладателей Windows.
Labels: development, vkontakte_getter, windows, wine


15 Comments:
При первом запуске программы, она секунд 20 создаёт папку data и файл tmp. Затем позволяет себя закрыть и создаёт error.log
"Traceback (most recent call last):
File "string", line 654, in run
File "string", line 459, in draw_circle
File "string", line 384, in fill_circles
File "string", line 64, in get_personal_of
File "string", line 48, in get_page
File "string", line 72, in put_page
IOError: [Errno 2] No such file or directory: 'data/113989/profile.html'"
При втором запуске начинает загружать список друзей, но в конце выкидывает ошибку. Я сейчас запущу заново (оба чекбокса выставлены) и добавлю лог.
http://code.google.com/p/vkontakte-getter/issues/detail?id=11
Эх, ещё бы знать в чём дело.
К сожалению, Windows у меня нету, а под Wine-ом нормально работает :(
Может быть вы можете проверить версию из исходников?
Надо скачать Python с python.org, и версию в исходниках отсюда.
Может быть вы знаете, у кого-нибудь виндовая версия вообще работает?
Угу, я тоже думал о том, чтобы самому собрать и проверить.
Сейчас скачаю и попробую.
Про остальных сказать ничего не могу - про то, что вообще существуют твои скрипты и этот анализатор элементарно никто не знает. :)
Ну все-таки кто-то скачал виндовую сборку уже 125 раз :)
Так что кто-то знает.
Я буду рад любой помощи, так как у меня не очень много времени и возможностей для тщательной отладки. Вон даже виндоуса нет :)
В абсолютных цифрах 128 копий программы это, конечно, круто, да. :)
Первый error.log - http://code.google.com/p/vkontakte-getter/issues/detail?id=12
Та же фигня: создаёт только папку профиля и замирает.
Запустил второй раз - начала накапливать страницы. На канале 256 оччень неторопливо: 10 секунд на один контакт. Учитывая, что у меня их семь сотен - минут через 15 отпишу, что да как в итоге.
Там error.log не приаттачился в issue 12 :(
А медленно потому, что если к "ВКонтакту" слишком часто обращаться, то он начнёт выдавать сообщение об ошибке "Слишком быстро". Поэтому стоит задержка в 5 секунд. А на каждый контакт по две страницы надо загрузить.
Лог добавил в 13.
А про 15 минут - это я в 10 раз ошибся, так что отпишусь утром, что да как.
На 658 контакте (id8170, папка пуста) выдала ошибку, лог в 14 выпуске.
Да, из лога ничего пока не понял :(
Кстати, не обязательно перезапускать всё сначала, если снять галочку "Перезагрузить страницы", то программа продолжит с того места, на котором сломалась.
Скачал, попробовал запустить.
Создала текстовый файл следующего содержания и всё (угловые скбки заменил, не пропускает местный движок).
Traceback (most recent call last):
File "string", line 675, in ok
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/urllib", line 1250, in urlencode
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Та ошибка исчезла, когда я убрал из пароля русские буквы.
Скачала страницы друзей, после надписи "скачиваю 83 из 83" выдала ошибку.
Traceback (most recent call last):
File "string", line 654, in run
File "string", line 483, in draw_circle
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/urllib", line 82, in urlopen
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/urllib", line 190, in open
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/urllib", line 328, in open_http
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/httplib", line 1199, in getreply
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/httplib", line 928, in getresponse
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/httplib", line 385, in begin
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/httplib", line 343, in _read_status
File "/home/anton/programing/vkontakte_svn\buildvkontakte_getter\out1.pyz/socket", line 331, in readline
IOError: [Errno socket error] (10054, 'Connection reset by peer')
о боже, зачем же так извращаться. Мог бы кросс-компиляцию через mingw32.
А ещё проще - создать один большой zip пакет куда засунуть половину cygwin вместе с питоном и твоей поделкой =). И похер что будет где-то 250-300мб.
А саааамое грамотное в таких случаях - найти коллегу у которого есть винда. Чтобы не заставлять пользователей чувствовать себя идиотами.
да и вообще. Поразрабатывай годик консольный стейбл софт, прежде чем пытаться что то ваять с гуей.
Траблы с кодировкой в не-русской локали (что очевидно). Ничего не делает, разве что логин с паролем проверить может =).
В error.log (кстати, ну какого хрена именно ТАМ?):
Traceback (most recent call last):
File "./vkontakte_getter.py", line 643, in ok
fip = FineImageProducer(person.idnum,callback=self.callback,upload=self.upload.get())
AttributeError: 'NoneType' object has no attribute 'idnum'
Что в свою очередь явно говорит что в исходниках полная каша =) Даже в трейсе видно =).
Никогда, слышишь, никогда не пиши по-русски в исходниках! Для этого есть gettext.
Ну и в довершение сего великолепия кнопка выход тоже не работает =)
--
Python 2.6.1 / Gentoo x68 / tcl/tk 8.4.18
Post a Comment
Links to this post:
Create a Link
<< Home