Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2010 02:44:09

Vaal
От:
Зарегистрирован: 2010-01-07
Сообщения: 21
Репутация: +  -1  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

есть скрипт, парсер лог файла, после парсинга данные заносятся в базу
попытался скомпилировать в exe, после запуска ехешника получил ошибку
попробовал скомпилировать простейший скрипт print “Hello World!” - все нормально ехешник работает
попробовал добавить первые строки кода парсера

import re
import time
import os
import MySQLdb

print "Hello World!"
получил ошибку

D:\Python!\PARSER\dist>hello.exe
Traceback (most recent call last):
File “hello.py”, line 4, in <module>
File “MySQLdb\__init__.pyc”, line 19, in <module>
File “_mysql.pyc”, line 12, in <module>
File “_mysql.pyc”, line 10, in __load
ImportError: DLL load failed: =х эрщфхэ єърчрээvщ ьюфєы№.

как решить эту проблему?



Офлайн

#2 Янв. 7, 2010 17:03:41

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

скорее всего какой-то dll не хватает. Ее нужно явно указать для py2exe в вызове setup() либо через опцию includes, либо через data_files. Посмотрите рекомендации на сайте py2exe.org: http://py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules



Офлайн

#3 Янв. 7, 2010 17:07:53

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

Попробуй в setup(options={…}) добавить “includes”:



Офлайн

#4 Янв. 8, 2010 17:16:02

Vaal
От:
Зарегистрирован: 2010-01-07
Сообщения: 21
Репутация: +  -1  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

не сработало

from distutils.core import setup
import py2exe

setup(
options={
"py2exe": {
"includes":["MySQLdb"]

}},

console = [{"script": 'hello.py'}] )
D:\Python!\PARSER\dist>hello.exe
Traceback (most recent call last):
File “hello.py”, line 4, in <module>
File “MySQLdb\__init__.pyc”, line 19, in <module>
File “_mysql.pyc”, line 12, in <module>
File “_mysql.pyc”, line 10, in __load
ImportError: DLL load failed: =х эрщфхэ єърчрээvщ ьюфєы№.



Офлайн

#5 Янв. 8, 2010 19:03:27

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

С сайта мелоксофт качаешь утилиту depends. В каталоге dist (или где у тебя твой exe находится) ищешь _mysql.pyd и запускаешь depends _mysql.pyd. Откроется окошко и покажет какие dll импортируются этой pyd и каких не хватает. Ишещь каких не хватает и добавляешь (например через data_files). Фирштейн?



Офлайн

#6 Янв. 8, 2010 20:17:22

Vaal
От:
Зарегистрирован: 2010-01-07
Сообщения: 21
Репутация: +  -1  -
Профиль   Отправить e-mail  

py2exe и MySQLdb

спасибо! заработало ))
есть еще один вопрос, запускаю ехе через командную строку
вначале идет такая строка
D:\Python!\PARSER\dist\library.zip\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated

что то про устаревший модуль, стоит разбираться с этим или ничего страшного?



Отредактировано (Янв. 8, 2010 20:17:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version