FB + Python
Модератор: kdv
FB + Python
Как ни хороша Дельфи, а хочется перемен. Привлекает Питон. Хотя, возможно, это влияние моды. Никто не пробовал Питон с FB?
С MySQL там есть варианты, но... сами понимаете, бедность
С MySQL там есть варианты, но... сами понимаете, бедность
Пробовал import kinterbasedb, кое-как с компиляцией разобрался. Все упиралось в кодировку. Пошло и банально в site.py заменил encoding ascii на cp1251 и все пошло. Скомпилировалось, пробуем подключить - есть. А вот пробуем запрос - фигу. Требует какой-то "евгеникс" для DateTime'a. А что, без него нельзя?Tonal писал(а):Solo писал(а):Если ты про Kinterbasdb то с ним идёт вполне вменяемая дока.Tonal писал(а):Спасибо. Нашел, скачал. Теперь насчет документашки бы какой... Про гугл знаю
Если про Qt - то очень подробный assistant
И еще: а QT бесплатный разве?
Я надеюсь, у тебя Python 2.5? Или хотя бы 2.4?
Если да, тады открой файлик __init__.py в пакете и вместо строчки ~254
Вставь
Всё должно заработать на стандартной поставке.
encoding я оставлял таким, как есть, при подключении указывал чарсет "WIN1251".
Все строковые отдаёт (кроме блобов) в unicoде, блобы - как есть.
Qt, начиная с 4-ки GPL под винду для MinGW, начиная с 4.3.2 можно использовать и MSVC и Borland (но без интеграции).
На офф. сайте свободно доступны исходники, и бинарики собранные под MinGW.
PyQt - GPL доступен в исзодниках и/или собранный под винду.
Последние дистрибутивы включают так же библиотеки Qt, ассистент, Qwt + PyQwt (графики и диограммы), QScintilla +PyScintilla (продвинутый редактор текста), Eric4 (IDE).
Если да, тады открой файлик __init__.py в пакете и вместо строчки ~254
Код: Выделить всё
def init(type_conv=1, concurrency_level=_k.DEFAULT_CONCURRENCY_LEVEL):
Код: Выделить всё
_type_conv = {3: 100, 4: 200, 5: 200}.get(sys.version_info[1], 1)
def init(type_conv=_type_conv, concurrency_level=2):
encoding я оставлял таким, как есть, при подключении указывал чарсет "WIN1251".
Все строковые отдаёт (кроме блобов) в unicoде, блобы - как есть.
Qt, начиная с 4-ки GPL под винду для MinGW, начиная с 4.3.2 можно использовать и MSVC и Borland (но без интеграции).
На офф. сайте свободно доступны исходники, и бинарики собранные под MinGW.
PyQt - GPL доступен в исзодниках и/или собранный под винду.
Последние дистрибутивы включают так же библиотеки Qt, ассистент, Qwt + PyQwt (графики и диограммы), QScintilla +PyScintilla (продвинутый редактор текста), Eric4 (IDE).
Хм... спасибо, попробую.
В принципе, у меня блобов и нет особых... Кроме тех, которые FIB использует, ну там же все латиницей...
А без QT никак нельзя? Я как-то в Си не очень... Си после Паскаля - как французский после английского.
Какую роль QT вообще выполняет?
Я предполагал использовать Питон в роли CGI, что-то вроде этого, чтобы с базой не только из офиса работать, но и с любой машины...
Извиняюсь за наивные вопросы, все когда-то начинали.
В принципе, у меня блобов и нет особых... Кроме тех, которые FIB использует, ну там же все латиницей...
А без QT никак нельзя? Я как-то в Си не очень... Си после Паскаля - как французский после английского.
Какую роль QT вообще выполняет?
Я предполагал использовать Питон в роли CGI, что-то вроде этого, чтобы с базой не только из офиса работать, но и с любой машины...
Извиняюсь за наивные вопросы, все когда-то начинали.
Qt у нас играет роль GUI библиотеки.
Для того, чтобы использовать её с Python-ом знать С++ не обязательно - там очень хороший биндинг (переходник).
Ну а если тебе GUI не нужен, то вполне хватит только Kinterbasedb.
Если нужно простейшая работа с CGI, то она есть в стандартной поставке - модуль cgi.py.
P.S. Пройди в Интуите курс по Python-у. Там довольно хороший обзор технологий.
Для того, чтобы использовать её с Python-ом знать С++ не обязательно - там очень хороший биндинг (переходник).
Ну а если тебе GUI не нужен, то вполне хватит только Kinterbasedb.
Если нужно простейшая работа с CGI, то она есть в стандартной поставке - модуль cgi.py.
P.S. Пройди в Интуите курс по Python-у. Там довольно хороший обзор технологий.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Я вот тож решил попробовать написать фронтэнд непосредственно под линух, поставил qt, методом научного тыка нихрена не понял, народ как будто рекомендует книженцию:Tonal писал(а):Qt у нас играет роль GUI библиотеки.
Для того, чтобы использовать её с Python-ом знать С++ не обязательно - там очень хороший биндинг (переходник).
Ну а если тебе GUI не нужен, то вполне хватит только Kinterbasedb.
Если нужно простейшая работа с CGI, то она есть в стандартной поставке - модуль cgi.py.
P.S. Пройди в Интуите курс по Python-у. Там довольно хороший обзор технологий.
Бланшет Ж., Саммерфилд М. «Qt 4. Программирование GUI на C++»
Это то что нужно начинающему или нет? Мож подкинешь ссылок?
Может подкинешь пример исходника, если не жалко на qt что-нидь типа "select 'Hello world!' from rdb$database"?
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Спасибо, почитаю на досуге.Tonal писал(а):http://prog.org.ru/forum/index.php?action=forum
Книжицу покуда скачал, грешным делом, написано как раз для тех кто qt видел полтора раза, если проникнусь идеей программировать на qt то точно прикуплю, не люблю читать с экрана.
Опять вернулся к этой теме
Еще накопал у немцев способ обойти UnicodeDecodeError при попытке
Сработало на Python 2.5.2 Windows XP
в том месте, где он спотыкается насчет UnicodeDecodeError в файле __init.py__ , в нашем случае в районе 98-й строчки, надо изменить код следующим образом:
И тогда импорт без проблем.
Еще накопал у немцев способ обойти UnicodeDecodeError при попытке
Код: Выделить всё
>>>import kinterbasdb
в том месте, где он спотыкается насчет UnicodeDecodeError в файле __init.py__ , в нашем случае в районе 98-й строчки, надо изменить код следующим образом:
Код: Выделить всё
else:
_instPath = _instPath
# так было:
#os.environ['PATH'] += os.pathsep + os.path.join(
# _instPath, 'bin'
# )
# так стало:
fs_enc = sys.getfilesystemencoding() # get the system encoding
tempPath = os.pathsep + os.path.join( # ...firebird path + \bin
_instPath, 'bin'
)
firebirdBinPath = tempPath.encode(fs_enc) # convert to system encoding string
osPath = os.environ['PATH'].decode(fs_enc) # get and decode system path
# set old system path + ;...firebird/bin
os.environ['PATH'] = ((osPath + firebirdBinPath).encode(fs_enc))
del _instPath
Итак, дело со скрипом движется. Было решено не использовать QT, Glade и т.п., т.е. обходится чисто питоновскими ингредиентами...
Причем взгляд изначально был в сторону Web-технологий. Была перерыта малюсенькая кучка англоязычной доки и принято решение использовать Pylons (не успеваешь прочесть, как дока уже устаревает), освоен HelloWorld по Pylons
Теперь вопрос: никто не использовал связку SQLAlchemy+FireBird?
Хотелось бы работающий пример подключения.
Да, и еще: морока с Unicode. Никто не пробовал перевести базу с Win1251 на Unicode? База-то рабочая, с ней работают клиенты на Delphi (FIBPlus)
Причем взгляд изначально был в сторону Web-технологий. Была перерыта малюсенькая кучка англоязычной доки и принято решение использовать Pylons (не успеваешь прочесть, как дока уже устаревает), освоен HelloWorld по Pylons
Теперь вопрос: никто не использовал связку SQLAlchemy+FireBird?
Хотелось бы работающий пример подключения.
Да, и еще: морока с Unicode. Никто не пробовал перевести базу с Win1251 на Unicode? База-то рабочая, с ней работают клиенты на Delphi (FIBPlus)