LINUX.ORG.RU

python - 2 или 3?


0

1

начал в прошлом году изучать питон - сразу начал с 3.1, чтобы по максимуму насладиться его продуманностью, минималистичностью и красотой.

написал некоторое кол-во софта - с использованием pyqt4 и многопоточности concurrent.futures

но сейчас наткнулся на первые камни - нахожу кучу полезных библиотек, типа pyquery - и все они написаны для 2.7
также, помню не получалось скомпилировать в exe питон3+pyqt4, а питон2.7+pyqt4 компилировался нормально

теперь подумываю о том, чтобы перейти на 2.7, и подождать пару лет, пока все портируют на третью ветку. особенно неприятно, то что юникод, по умолчанию принятый в третьей ветке - совсем не принят в 2.7 и придется к строкам приписывать u", использовать отдельные функции, специально для юникода..

я сомневаюсь, действительно ли стоит идти на такой шаг из-за пары красивых и удобных библиотек? или лучше потерпеть?

Можешь обойтись без библиотек - оставайся на Py3.

tailgunner ★★★★★ ()

Оставайся на 2.7, но помогай портировать библиотеки на python 3.2

Sergey_MSU ()

> питон3+pyqt4
cx_freeze сделает тебе хорошо.
А так терпи и портируй пару красивых и удобных библиотек. :)

zJes ★★ ()

Думаю, надо ждать Py4.

dave ★★★★★ ()
Ответ на: комментарий от anonymous

А тем временем такие столпы как pygtk, PIL, beautifulsoup либо вообще не портированы либо только начинают портироваться на 3-ю ветку.

fat_angel ★★★★★ ()
Ответ на: комментарий от Siado

К стати, а на сколько 3-й питон работает быстрее второго?

скорее уж насколько медленнее. Процентов на 10, смотря как повезёт.

mashina ★★★★★ ()
Ответ на: комментарий от fat_angel

Ну может которые умерли лет 6 назад, еще нет, а какие вам не хватает? QtRuby вообще официально не портировано, cmake ругается что не может найти ruby, по этому все лечится комментированием 1 строчки в CMakeLists.txt

babusha ()

>чтобы по максимуму насладиться его продуманностью, минималистичностью и красотой.

А мне он показался уродливым, непродуманным нагромождением костылей и подпорок. К тому же на нем даже при желании не удается писать красивый код.

zombiegrinder_6000 ()

Любой переход ИМНО будет довольно болезненным, и без крайней необходимости лучше его не делать. Я напр не вижу никаких кардинальных бонусов в Py3, что бы мне на него переходить, ИМНО py2 сейчас в нек-м смысле стандарт (если не считать Арча). Насколько активно будут продавливать третью ветку пока сказать сложно... слишком много всего понаписано под 2ю.

Но раз уж Вы живете на Py3 - живите пока можете. С либами ситуация рано или поздно должна выправится.

AIv ★★★★★ ()
Ответ на: комментарий от AIv

>Любой переход ИМНО будет довольно болезненным, и без крайней необходимости лучше его не делать. Я напр не вижу никаких кардинальных бонусов в Py3, что бы мне на него переходить, ИМНО py2 сейчас в нек-м смысле стандарт

Аналогично, сижу на Py2 и доволен.

Siado ★★★★★ ()
Ответ на: комментарий от mashina

Смотря где и в чем... :)
Если брать PyQt, то там быстрее. Ну... из-за версии апи.

zJes ★★ ()
Ответ на: комментарий от Siado

Так и нафиг он тогда нужен, если медленнее

так медленнее в основном из-за юникода во все щели, одна из основных фич 3 версии. От этого всё равно не уйти, ибо мешанина между str и unicode не особо удобна.

mashina ★★★★★ ()

>python - 2 или 3?

python/0

Led ★★★☆☆ ()
Ответ на: комментарий от Siado

С чего бы так не подумать? Строки с фиксированной длинной против неопределённой. Уже используется юникод32 (в тройке он, афаик, всегда таким был, но не в двойке), но и там не всё гладко с длинной. И 1 байт против 4х на символ во всех именах объектов тоже хорошего мало дают - усложняются расчёты хэшей строк.

anonymous ()
Ответ на: комментарий от Siado

> Так и нафиг он тогда нужен, если медленнее

Свистит он, не медленнее. На некоторых да медленнее на 5%-10%, но на других на 10%-15%. В целом по моим ощущениям даже немного быстрее в целом. Если задача не содержит обработок строки - быстрее однозначно.

anonymous ()

кстати а как в 3м с pylons или django? или только для 2й?

ggrn ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.