LINUX.ORG.RU

Сегодня состоялся выпуск Python 3.3

 


0

2

Python 3.3 является первым выпуском, в который включены изменения в языке, после двухлетнего моратория — Python 3.2 имел только внутренние нововведения интерпретатора, не затрагивающие совместимость со старым кодом. Кроме того, это первый выпуск, никакие новые свойства которого не будут портированы в ветку 2.x.

Основные изменения:

  • Синтаксис:
    • оператор
      yield from
    • в целях совместимости и упрощения переноса приложений с ветки 2.x синтаксис строк вида
      u'unicode'
       — никаких реальных изменений.
  • Новые модули:
    • faulthandler для отладки низкоуровневых падений;
    • ipaddress для высокоуровневых операций с адресами и масками;
    • lzma — сжатие данных с помощью алгоритма XZ/LZMA;
    • unittest.mock — тестирование;
    • venv — виртуальные рабочие пространства, независимые от системного, каждое представляет собственный бинарник и набор модулей.
  • Новые встроенные свойства:
  • Улучшения реализации:
  • Улучшения безопасности:
    • рандомизация хэшей включена по умолчанию.

>>> Что нового в Python 3.3

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Silent (всего исправлений: 3)
Ответ на: комментарий от yanka

Для Debian требуется установить: - Jpeg: libjpeg8-dev - PNG/ZIP: libz-dev У Ubuntu вероятнее всего те же зависимости.

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

Для Debian-а требуется установить:
- Jpeg: libjpeg8-dev
- PNG/ZIP: libz-dev
У Ubuntu, вероятнее всего, те же зависимости.

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

Потому, что это не просто порт, а полноценный форк. Для centos вообще только из исходников собрать библиотеку можно (там только 6 версия есть).

anonymous
()

Подскажите ламмиру: а почему старые скрипты надо переписывать? Неужто никак низя было обеспечить совместимость? Борланд вроде раньше (в лохматые годы) с этим справлялся.

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

Подскажите ламмиру: а почему старые скрипты надо переписывать? Неужто никак низя было обеспечить совместимость? Борланд вроде раньше (в лохматые годы) с этим справлялся.

Потому что было принято решение исправить все недочёты при дизайне.Некоторые из них невозможно исправить без потери совместимости. Например, теперь все строки ---- юникод, оператор / всегда производит деление с действительнозначным результатом, как в Паскале, а для целочисленного деления --- //.

Vudod ★★★★★
() автор топика

Не троллинга ради: он вообще кому-нибудь нужен? Я имею в виду третью ветку. Все знакомы конторы всё никак не спешат с переходом с 2.х

mix_mix ★★★★★
()

Имхо питон к этой версии почти стал достаточно продуманным языком. Особенно понравилась иерархия эксепшенов

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

Не троллинга ради: он вообще кому-нибудь нужен? Я имею в виду третью ветку. Все знакомы конторы всё никак не спешат с переходом с 2.х

Это логично, ждут, пока портируют весь функционал. Постепенно миграция, тем не менее, происходит. Для промышленного использования важна поддержка юникода, переработанный GIL. Да и мелочи вроде оператора / тоже приятны, позволяют иногда избежать дурацких ошибок.

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

девелоперские пакеты поставь

Все девелоперские пакеты стоят. Устанавливала же pillow, под вторую ветку все отлично

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

Для промышленного использования важна поддержка юникода, переработанный GIL

и как, успешно переработали? Что-то не замечаю в этом срезе разницы.

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

Спасибо! А что говорят спецы, теперь-то уж ломать причин не будет в будущем?

причины будут всегда, вопрос только когда.

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

и как, успешно переработали? Что-то не замечаю в этом срезе разницы.

Новый механизм GIL был внедрён в 3.2, т.е. во вторую ветку уже не попал, т.к. 2.7 базируется на 3.1.

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

Спасибо! А что говорят спецы, теперь-то уж ломать причин не будет в будущем?

Проект py3000 готовился много лет, нереход на третий Питон займёт ещё больше. Вроде бы всё достаточно вылизано и причин ломать совместимость в ближайшие 10-15 лет никто не видит. Гвидо как-то высказывался, что если и будет Питон 4, то, видимо, не при его жизни.

Vudod ★★★★★
() автор топика

yield from

PEP 420 — Implicit Namespace Packages

Осталось сесть и все это вдумчиво раскурить!

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

Подскажите ламмиру: а почему старые скрипты надо переписывать? Неужто никак низя было обеспечить совместимость? Борланд вроде раньше (в лохматые годы) с этим справлялся.

На самом деле там не так много и надо переписывать, хотя, конечно, это от приложения зависит. Есть, конечно, места, где всё сделали иначе, но многих это не коснулось.

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

PyCharm от JetBrains - лучшая, имхо.

Хотя она и платная и на жабе писанная, но... лучшая. «Ис каропки» работа с виртуальными окружениями, корректное автодополнение питона и яваскрипта (!) , поддержка Django и Google Apps, прекрасно сделанный рефакторинг, добротно реализованная отладка (в том числе и веб-приложений), поддержка почти всех систем управления исходным кодом. Главный минус: много жрет памяти, ну и платная опять же.... Хотя стоит и не дорого.

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

для web разработчиков принципиально , что еще нет порта для PIL.

скорее всего, под «web разработчиками» вы подразуменваете студентов и аспирантов. тем, кто разрабатывает web-приложения, PIL нужен, как сантехнику - тампакс.

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

Все девелоперские пакеты стоят.

а что говорит ./config-log (или как оно там называется) ?

Я достаточно долго и много юзал 3.3 из транка, никогда проблем не было. Ставил на разные версии убунты.

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

Тот форк PIL-а ищет /usr/lib/libjpeg.so.8. 6 версия 100% не подойдет, я с этим несколько дней трахался.
Можешь изменить в setup.py JPEG_ROOT = None на JPEG_ROOT = libinclude(«/usr») или что-то типа того (в этой папке должны быть /lib и /include).

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

Посмотрел сейчас требования:

  • Pillow: JPEG support libjpeg (6a or 6b)
  • PIL-fork: JPEG support libjpeg (6b or 8b)
anonymous
()
Ответ на: комментарий от Vudod

Научные приложения сдерживает matplotlib, в версии 1.2 обещана-таки поддержка.

Интересно, судя по софту, для научных приложений есть два лагеря прогеров: Питон + Си/Ассемблер (когда нужна скорость), и Ява + Фортран (если нужны проверенные временем, вылизанные от багов библиотеки)

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

скорее всего, под «web разработчиками» вы подразуменваете студентов и аспирантов. тем, кто разрабатывает web-приложения, PIL нужен, как сантехнику - тампакс.

ну это вы зря :) Мы вот пользуемся и радуемся.

stalkerg ★★★★★
()

Годный выпуск, особенно неймспейсы и venv порадовали.

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

У меня немного другой круг деятельности, им немного другие либы.

SAA ★★★
()

unittest.mock --- тестирование;

Пойду просплюсь...

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

Ява + Фортран (если нужны проверенные временем, вылизанные от багов библиотеки)

Никогда не встречал такого сочетания, хотя всякое бывает. Тот же Питон в numpy и scipy использует интерфейсы к lapack, odepack, linpack и др., можно писать на Фортране модули и линковать с помощью f2py, который штатно входит в numpy, причём разрешено использовать f95 стандарт.

Vudod ★★★★★
() автор топика
Последнее исправление: Vudod (всего исправлений: 1)
Ответ на: комментарий от Stalin

Ява + Фортран (если нужны проверенные временем, вылизанные от багов библиотеки)

А что, на Яве написано много «проверенных временем и вылизанных библиотек»? Если речь о Фортран/Си-библиотеках, они доступны из Python.

tailgunner ★★★★★
()

pep 420 implicit namespace packages это о чём? Это чтобы пакет разбить на несколько подпакетов и раскидать их по разным папкам? А зачем это нужно?

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

не понимаю почему не используют ImageMagic, для него есть биндинги под третью ветку

А можно подробнее?

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

это нужно если ты хочешь сделать пакет, плагины в который могут устанавливаться отдельными пакетами. каждый плагин, таким образом, будет иметь свое поддеревце в site-packages.

ещё это позволяет использовать доменные имена в качестве имён пакетов, типа:

import ru.org.linux.forum.db

AGUtilities ★★★
()
Последнее исправление: AGUtilities (всего исправлений: 1)
Ответ на: комментарий от true_admin

А зачем имена ресурсов писать в обратном порядке?

чтобы иерархию сохранить.

И зачем имена пакетов в виде доменных имён? :)

чтобы уменьшить вероятность совпадения неймспейсов в несвязанных проектах

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