Найти - Пользователи
Полная версия: Интересная проблемка вышла после компиляции exe-шника
Начало » Python для экспертов » Интересная проблемка вышла после компиляции exe-шника
1 2
proDiva
Проверила исходный код, работает правильно. Вот фрагмент кода:

prop = list(s.summa_propis(self.itogo.GetValue()))
prop = str(prop).upper()
self.propis.SetValue(''.join(prop))

Возвращаю сумму прописью с заглавной буквы. Так вот, после создания exe-шника строка суммы прописью никак не хочет выходить с заглавной буквы. Я уже несколько раз перекомпилировала. Я думаю, может в архив library не все нужное для этого попадает. В коде импортирую модуль string для работы с текстом. В library он есть. Может еще чего не хватает? Но с другой стороны, прога не выдает ошибки.
bialix
по моему опыту так случается если какая-то либа динамически импортирует что-то. по вашему кусочку я ничего не скажу, потому что это незакоченный кусочек чего-то там. попробуйте создать минимальный экзампл приложения и спросить студию еще раз.
proDiva
bialix
попробуйте создать минимальный экзампл приложения и спросить студию еще раз.
Я выложила только кусочек, потому что не срабатывает одна единственная команда upper().
pythonwin
proDiva
Я выложила только кусочек, потому что не срабатывает одна единственная команда upper().
попробуй этот кусочек вставить в try except и ошибку записать в файл или выведи на экран, так возможно и найдешь решение :)
Андрей Светлов
py2exe?
package “encoding” точно лег в ехешник? Была у него проблемка…
И еще. default encoding не слетел?
proDiva
pythonwin
попробуй этот кусочек вставить в try except и ошибку записать в файл или выведи на экран, так возможно и найдешь решение
Еще раз говорю, что программа не выдает ошибок. Пакет encoding там тоже присутствует.
И выяснились новые подробности:
Сумму прописью я формирую в отдельном модуле, оттуда возвращаю значение в главный модуль в поле фрейма, а из поля фрейма это значение попадает в html-код для последующей печати. Так вот, когда значение должно попасть в поле фрейма, команда срабатывает только при запуске проги из IDLE. Т.е. даже без exe-шника когда запускаешь main.pyw, не открывая его через питоновский IDLE, команда не срабатывает. Но когда я добавила эту же команду повторно при записи в html-код, здесь она стала срабатывать в любом случае. В общем, как я поняла, это не команда upper() выновата, а фрейм так читает текст, причем опять-таки повторяю, что ошибок нет!
bialix
вывод собсно простой: не пишите такие хитромудрые программы. будьте проще, чтите Дзен.
pythonwin
proDiva, ты сможешь выложить программу?
proDiva
запросто

так……… файл опять не прикрепляется((

2.zip
proDiva
bialix
вывод собсно простой: не пишите такие хитромудрые программы. будьте проще, чтите Дзен.
Почему хитромудрые? самые обычные, причем как раз вы (форумчане-питонисты) и учили разделять на модули различные задачи программы…….. вот я и сделала, функцию “сумма прописью” выделила в отдельный модуль, а главную форму с ее операциями - в другой, еще один модуль с преобразованиями типов данных и форматированием. А html-страница формируется при нажатии печать главной формы. И что тут хитромудрого?
Конечно, задачи невелики, и все можно было кинуть в один файл, но когда я таким образом сделала первую прогу, Вы сразу же возразили, что код слишком напичканный, нечитабельный. Как видите, во всем слушаюсь, а Вы опять недовольны ;)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB