Форум сайта python.su
0
Привет всем! Беда у меня с 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
except Exception, info: logging.error(u'list of connections not loaded: ', str(info))
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.
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’>Лог3:
('localhost')
<type ‘str’>
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>
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>' \
Отредактировано n2b (Апрель 29, 2012 11:41:09)
Офлайн
18
cx_freeze
Офлайн
0
sp3Юзал. Тоже самое. Только никакого лога ошибок нет… =\
cx_freeze
Офлайн
173
Во-первых:
тут ошибка, должно быть:logging.error(u'list of connections not loaded: ', str(info))
logging.error(u'list of connections not loaded: %s', str(info))
Отредактировано reclosedev (Апрель 29, 2012 11:52:11)
Офлайн
0
Подскажите пожалуйста, как лучше всего указывать пути до файлов?
Например до shelve файла.
У меня указано так:
filename = './data/oracle/connections.dat' d = shelve.open(filename)
Отредактировано n2b (Апрель 29, 2012 12:13:00)
Офлайн
0
reclosedev
Во-первых:тут ошибка, должно быть:logging.error(u'list of connections not loaded: ', str(info))Во-вторых, попробуйте убрать опцию оптимизации, которая переводит файлы в .pyo.logging.error(u'list of connections not loaded: %s', str(info))
Офлайн
3
>Я вопрос чуть выше задал, как правильно пути оформлять для винды.
как обычно, при указании относительных путей нужно быть уверенным, что текущая директория установлена на то место, откуда у Вас указаны пути относительные. Или же правильнее будет получить директорию Вашего .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
Офлайн
0
beelzewhile stat.S – а stat то где взять? :)
>Я вопрос чуть выше задал, как правильно пути оформлять для винды.
как обычно, при указании относительных путей нужно быть уверенным, что текущая директория установлена на то место, откуда у Вас указаны пути относительные. Или же правильнее будет получить директорию Вашего .exe/.py и потом os.path.join()'ом их склеивать.
путь до “исполняемого файла” я получаю примерно так:“наворотов” столько по причине воннаби-кроссплатформенности и поддержки и .py и .exe и симлинков@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
ну а диру из имени получить достаточно тривиально
Офлайн
3
>а stat то где взять
я так подозреваю, что import stat 
>а мне нужно залезть в другу папку.
Что Вы тут мне голову морочите тогда, если путь к другой папке 1) относительный 2) относителен не от исполняемого файла?
Офлайн
0
beelze
>а stat то где взять
я так подозреваю, что import stat :)
>а мне нужно залезть в другу папку.
Что Вы тут мне голову морочите тогда, если путь к другой папке 1) относительный 2) относителен не от исполняемого файла?
n2b
Вообщем я сделал вот так:
self.path = os.path.join(os.path.dirname(__file__),'data','oracle')
И py2exe все равно ругается так словно, она видит этот файл… =\
Офлайн