Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2012 11:06:21

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

Привет всем! Беда у меня с py2exe. Программа есть, очень нужен exe для института. А тут такое дело…
Сделал exe, и в от что в логах.
Щас покажу лог, а ниже что код что соответствует ошибкам:

Лог1:

Traceback (most recent call last):
File “logging\__init__.pyo”, line 842, in emit
File “logging\__init__.pyo”, line 719, in format
File “logging\__init__.pyo”, line 464, in format
File “logging\__init__.pyo”, line 328, in getMessage
TypeError: not all arguments converted during string formatting
Logged from file db_info.pyo, line 293

Код1:
except Exception, info:
            logging.error(u'list of connections not loaded: ', str(info))
Лог2:
Traceback (most recent call last):
File “DataQuality.py”, line 175, in ConnectDB
File “connections_manager.pyo”, line 60, in __init__
File “wx\_controls.pyo”, line 494, in __init__
TypeError: Sequence of strings expected.

Код2:

items = self.wc.take_cons()
        self.connections_choice = wx.Choice( self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, items, 0 )
        
items = self.wc.take_cons()
print type(items)
print items
print type(items[0])
Вывод принтов:
<type ‘list’>
('localhost')
<type ‘str’>
Лог3:
Traceback (most recent call last):
File “help.pyo”, line 142, in OnSelChanged
File “wx\html.pyo”, line 1004, in SetPage
File “encodings\cp1251.pyo”, line 15, in decode
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 22: character maps to <undefined>

Код3:
    def CreateHTMLCtrl(self, parent=None):
        if not parent:
            parent = self
        ctrl = wx.html.HtmlWindow(parent, -1, wx.DefaultPosition, wx.Size(400, 300))
        return ctrl
self.html_page = self.CreateHTMLCtrl(self.m_panel3)
self.html_page.SetPage(connect2_text) # ругается на эту строчку
connect2_text = \
'<b>"Data Quality" -- Информация для соединения с базой данных</b>' \
'<div><br />' \
'<div>' \

При запуске из Aptana Studio - все ок, при запуске: python DataQuality.py – все ок.


Помогите пожалуйста. Или же подскажите, может есть менее косячный способ чтобы получить exe?



Отредактировано n2b (Апрель 29, 2012 11:41:09)

Офлайн

#2 Апрель 29, 2012 11:27:53

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

py2exe

cx_freeze



Офлайн

#3 Апрель 29, 2012 11:41:40

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

sp3
cx_freeze
Юзал. Тоже самое. Только никакого лога ошибок нет… =\



Офлайн

#4 Апрель 29, 2012 11:51:53

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

py2exe

Во-первых:

logging.error(u'list of connections not loaded: ', str(info))
тут ошибка, должно быть:
logging.error(u'list of connections not loaded: %s', str(info))
Во-вторых, попробуйте убрать опцию оптимизации, которая переводит файлы в .pyo.

Отредактировано reclosedev (Апрель 29, 2012 11:52:11)

Офлайн

#5 Апрель 29, 2012 12:04:37

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

Подскажите пожалуйста, как лучше всего указывать пути до файлов?
Например до shelve файла.
У меня указано так:

            filename = './data/oracle/connections.dat'
            d = shelve.open(filename)

ОС Windows



Отредактировано n2b (Апрель 29, 2012 12:13:00)

Офлайн

#6 Апрель 29, 2012 12:15:20

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

reclosedev
Во-первых:
logging.error(u'list of connections not loaded: ', str(info))
тут ошибка, должно быть:
logging.error(u'list of connections not loaded: %s', str(info))
Во-вторых, попробуйте убрать опцию оптимизации, которая переводит файлы в .pyo.

C info разобрался. Теперь даже Aptana начала выдавать эту ошибку. Там странно очень вообщем :) не самое критичное.
Далее я почти везде разобрался что написал, я так понял что ошибка в путях к файлам. Отсюда и ошибки.
Я вопрос чуть выше задал, как правильно пути оформлять для винды.



Офлайн

#7 Апрель 29, 2012 12:43:10

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

py2exe

>Я вопрос чуть выше задал, как правильно пути оформлять для винды.
как обычно, при указании относительных путей нужно быть уверенным, что текущая директория установлена на то место, откуда у Вас указаны пути относительные. Или же правильнее будет получить директорию Вашего .exe/.py и потом os.path.join()'ом их склеивать.

путь до “исполняемого файла” я получаю примерно так:

    @classmethod
    def _mainfile(cls):
        file = os.path.abspath(sys.executable if hasattr(sys, "frozen") else sys.modules['__main__'].__file__)
        while stat.S_ISLNK(os.lstat(file).st_mode): file = os.readlink(file)
        return file
“наворотов” столько по причине воннаби-кроссплатформенности и поддержки и .py и .exe и симлинков
ну а диру из имени получить достаточно тривиально

Офлайн

#8 Апрель 29, 2012 12:51:44

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

beelze
>Я вопрос чуть выше задал, как правильно пути оформлять для винды.
как обычно, при указании относительных путей нужно быть уверенным, что текущая директория установлена на то место, откуда у Вас указаны пути относительные. Или же правильнее будет получить директорию Вашего .exe/.py и потом os.path.join()'ом их склеивать.

путь до “исполняемого файла” я получаю примерно так:
    @classmethod
    def _mainfile(cls):
        file = os.path.abspath(sys.executable if hasattr(sys, "frozen") else sys.modules['__main__'].__file__)
        while stat.S_ISLNK(os.lstat(file).st_mode): file = os.readlink(file)
        return file
“наворотов” столько по причине воннаби-кроссплатформенности и поддержки и .py и .exe и симлинков
ну а диру из имени получить достаточно тривиально
while stat.S – а stat то где взять? :)

И еще, в итоге file - путь до скрипта, а мне нужно залезть в другу папку.
Вообщем я сделал вот так:
self.path = os.path.join(os.path.dirname(__file__),'data','oracle')
И py2exe все равно ругается так словно, она видит этот файл… =\



Офлайн

#9 Апрель 29, 2012 14:43:01

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

py2exe

>а stat то где взять
я так подозреваю, что import stat

>а мне нужно залезть в другу папку.
Что Вы тут мне голову морочите тогда, если путь к другой папке 1) относительный 2) относителен не от исполняемого файла?

Офлайн

#10 Апрель 29, 2012 15:39:26

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

py2exe

beelze
>а stat то где взять
я так подозреваю, что import stat :)

>а мне нужно залезть в другу папку.
Что Вы тут мне голову морочите тогда, если путь к другой папке 1) относительный 2) относителен не от исполняемого файла?


n2b
Вообщем я сделал вот так:
self.path = os.path.join(os.path.dirname(__file__),'data','oracle')
И py2exe все равно ругается так словно, она видит этот файл… =\

Не помогает. Запускаю из Aptana Studio – работает, запускаю из командной строки – работает, делаю exe – не работает.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version