Найти - Пользователи
Полная версия: Python 3.2 & mysql
Начало » Python для новичков » Python 3.2 & mysql
1 2
S1lent
Какие модули для Mysql существуют и корректно ставятся на это чудо? Гугл весь перерыл, но неуспешно.
beelze
гуглите Вы как-то не по-нашему, не по-людски. А мы во первых же строках мы обнаруживаем:
http://pypi.python.org/pypi/MySQL-python, что ведет нас к http://sourceforge.net/projects/mysql-python/
S1lent
ну а если повнимательней
beelze
http://pypi.python.org/pypi/MySQL-python
Python-3.0 will be supported in a future release.
beelze
http://sourceforge.net/projects/mysql-python/
Python versions 2.3-2.6 are supported.

из всего что удалось нагуглить и с горем пополам поставить - это pymysql
но по ощущениям (запускал один и тот же скрипт на разных версиях питона с разными mysql модулями) он довольно медленный, при запуске скрипта он повисает секунды на 2 и только потом выводит результат, когда другие модули (но на версии <3.0) отрабатывают моментально, я даже Enter не успеваю нажать.
beelze
S1lent, сорри, упустил троечку. про pymysql пишется, что он «is a dbapi compliant, pure-python implementation» - возможно поэтому медленный.
Если Ваша платформа - Windows, то есть вот что: http://www.lfd.uci.edu/~gohlke/pythonlibs/ упомянут «Python 3 port»
S1lent
Как раз-то требуется для freebsd pyodbc я ставил полночи так и не поставил, через стандартный pip не собирается, собственно как и setup'ом
Печально всё это.. вроде 3ей ветке уже пару лет, а она по прежнему не популярна.. Но проблемы с юникодом второй ветки выше моих сил…
beelze
>3ей ветке уже пару лет, а она по прежнему не популярна
поэтому я пока и не перешел на тройку, ибо не все еще портировано

>проблемы с юникодом второй ветки
ну не знаю. есть какие то аспекты, не рассмотренные в unicode howto?
S1lent
beelze
ну не знаю. есть какие то аспекты, не рассмотренные в unicode howto?
Мне как новичку в python просто неудобно. Хочется не отвлекаться на все эти приблуды с юникодом а просто программировать, например

a = (u"Саша", u"Паша", u"Маша")
print a

в консоли будет байт-код. А если я делаю выборку из ДБ (с кириллическими символами)“SELECT * FROM table” и заранее не знаю/не хочу знать сколько полей, а просто хочу посмотреть список например “print row”, то увижу тот же самый байт-код.
regall
S1lent
в консоли будет байт-код. А если я делаю выборку из ДБ (с кириллическими символами)“SELECT * FROM table” и заранее не знаю/не хочу знать сколько полей, а просто хочу посмотреть список например “print row”, то увижу тот же самый байт-код.

Так пользуйтесь для таких целей конcолью MySQL или MySQL query browser / MySQL admin …, по-моему, гораздо удобнее.
S1lent
Не спорю, возможно надо как-то абстрагироваться от php мышления. Всё же хоть и говорят что в python работа с юникодом удобнее чем в php, пока я вижу полную противоположность этому мнению.
beelze
>Мне как новичку в python просто неудобно. Хочется не отвлекаться на все эти приблуды с юникодом а просто программировать

мне ни разу кроме как в отладочных целях не приходилось делать print list() или tuple(). кроме того, не всегда можно полагаться, что кодировка полученной откуда-то строки будет соответствовать кодировке устройства вывода. Поэтому-то и есть 2 типа данных - str и unicode. И соответствующие функции работы с кодировками.
если хотите вывести не строковое представление объекта, а что-то конкретное, то и пишите конкретнее. Например так:
 print u', '.join(a)
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