Какую версию Python изучать?
Если пару-тройку лет, то третью — потому-что вероятно большАя(если не бОльшая) часть библиотек и решений, перейдет на неё, за это время. Если за месяц-два планируете освоить, то 2.6\2.7 — потому-что сейчас большинство на них пишут и соответственно большинство библиотек и решений именно на нем. 🙂
А почему вообще питон?
Есть куча других замечательных языков — не холивара ради, но что вы на нем собираетесь делать?
От направления деятельности нужно выбирать язык,
и его версию, соответственно.
Ну и до кучи — изучив любой из питонов, вы будете легко воспринимать, код на любых других версиях
— правда, немного почитав про отличия (их не так много, к слову).
Однако, без большого количества правильных примеров вам будет сложно прочувствовать
все прелести новых конструкций, которые появились в 3.*, по отношению к 2.6\2.7.
Какую версию Python выбрать?
Собираюсь изучать питон. Но все не знаю с какой версии начать. Помогите сделать выбор. Область применения самая обширная:
- web;
- обработка биржевых данных, графиков, графический анализ;
- для себя.
Я бы выбрал 3-ю. Но останавливает наличие библиотек. Да и джанга под третью версию не работает. Вот ключевой вопрос как быстро это все появиться под 3-кой? Ведь на дворе 2012 год уже.
Ну я бы посоветовал взять литературу по Python 3, например от Марка Саммерфилда. В его книгах подробно описаны отличия некоторых конструкций языка между Python 3 и Python 2. А вообще, товарищ Ilya Pirogov прав — отказаться от Python 2 не получиться. У меня у самого куча проектов на Django 1.4, а так же еще на Django 1.3.1 и не факт, что 1.5 «с лету» войдет в обиход, т.к. очень много сторонних модулей используют Python 2.
Скорее всего, у вас не получится полностью отказаться от Python 2, так или иначе вам придется с ним сталкиваться. Однако, это вовсе не значит, что стоит отказываться от Python 3, кардинальных отличий между этими версиями не так уж и много, а основная проблема совместимости заключается именно в модулях.
По этому, я бы рекомендовал учить обе версии. Начните, к примеру, с Python 3, а затем изучите отличия версий. Когда начнется массовый переход на Python 3, уверен, вам пригодятся знания обоих версий.
Наиболее популярные веб фреймворки для Python 3:
Bottle — Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library.
Pyramid — Pyramid is a very general open source Python web framework. As a framework, its primary job is to make it easier for a developer to create an arbitrary web application. The type of application being created isn’t really important; it could be a spreadsheet, a corporate intranet, or a social networking platform. Pyramid is general enough that it can be used in a wide variety of circumstances.
CherryPy — CherryPy is a pythonic, object-oriented web framework. CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This results in smaller source code developed in less time.
Версии Python
Про python 1 никогда не слышал, python 2 ещё где-то используется, но только если это вынужденная мера, например большой проект и переписывать его на python 3 нет смысла, ибо очень долго и трудозатратно.
python 3 основная версия на данный момент, лучше использовать его, минимум 3.6 так как там появляется важные возможности (например f строки) без которых могут не работать новые библиотеки. Если нет причин использовать конкретную версию, лучше брать последнюю, сейчас 3.10, в ней тоже добавили несколько полезных вещей, например pattern matching
Какая версия Python самая быстрая?
12 апреля 2018 г.
Archy
Просмотров: 22108
RSS
Обсудить

Конечно, все зависит от определенных нюансов, но как именно, и как понять, какая версия Python будет самой быстрой для вашего приложения?
Использование служебной программы производительности
Главная команда Python делает многое для производительности, стоит упомянуть сайт speed.python.org, который является отличным примером с «официальными» показателями тестов CPython.
Однако существует несколько проблем:
1. Результаты достаточно сложно прочитать;
2. Они не включают в себя PyPy;

Вместо этого, вы можете скачать панель инструментов, которая запускает этот сайт при помощи команды pip install performance, после чего вы можете запустить:
Таким образом, несколько раз запустятся серии документированных «реальных» приложений с целевой версией Python с записью средних и медиан.
Это отлично подходит в контексте данной статьи для официальных инсталляций Python:
- 2.7.10,
- 3.4.4,
- 3.5.4,
- 3.6.1, а также
- 3.7 (у нас имеется бета 2).
Кроме этого, это включает PyPy(5.6.) и PyPy3 (5.4.10).
Результаты
Я подправил результаты, указанные ниже в соответствии с нашим случаем. Взгляните, проведите свой собственный тест и по возможности, напишите собственный тест.
Я также создал простой скрипт для получения списка файлов данных производительности и создания графиков для каждого теста. Код на GitHub.
Лучшими результатами производительности в графиках являются секундой или еще быстрее
Полные результаты с графиками доступны здесь:
Я выложил тесты из соображений их значимости. Остальные тесты, которые будут показаны, находятся в подведении итогов, и имеют схожие паттерны.
Рендеринг результатов в HTML
Тест django_html использует шаблон движка рендеринга Django для создания таблицы HTML 150 х 150. Он использует классы Content и Template движка Django.

Python 3.7 на 1.19x быстрее Python 2.7, но это единственный релиз Python 3.x, который опередил Python 2.7, который я запустил.
PyPy опережает все результаты CPython, однако PyPy3 в два раза медленнее PyPy. Стоит отметить недавнее решение в Django, касаемо отказа поддержки Python 2 в Django 2.0 и выше. Это означает, что PyPy больше не поддерживается Django 2.
Время запуска
Данный тест просто оценивает время, необходимое интерпретатором для запуска. Если вы обходите ограничение GIL в Python, запустив несколько процессов, то это может быть важным.

Обратите внимание на скачок показателей PyPy, особенно PyPy3. Мы рассмотрим, почему так произошло в конце статьи.
Криптография: crypto_paes

В данном тесте вы увидите любопытную разницу в скорости между Python 2 и 3. Почему? Crypto запрашивает большое количество расчетов, а Python 3 больше не поддерживает 32-разрядные типы чисел, только (очень) длинные числа.
Пользователи PyPy могут заметить, что PyPy3 почти в пять раз медленнее, чем PyPy!
Арифметика с плавающей точкой
«float» — это искусственное приложение арифметики с плавающей точкой, которое создаст 100 000 точечных объектов, которые вычисляют math.cos(), math.sin() и math.sqrt().

Это тип приложения, который идеально подходит для PyPy, большого количества расчетов чисел, предсказуемых методов, типов и циклов. Python 3.7 содержит новый быстрый метод вызова опкода, который используется в данном тесте.
Регулярные выражения
В тесте регулярных выражений, «запуск 50 самых популярных сайтов в Интернете и протоколирование всех операций с регулярными выражениями. Каждой операции присваивается значение, которое рассчитывается по оценке популярности страниц, на которой она выполняется и того, сколько раз она выполняется при загрузке каждой страницы. Наконец, буквы данных кодируются при помощи ROT13 таким образом, чтобы не повлиять на то, как регулярные выражения соотносят их при вводе».

Трудно сказать, что происходит с PyPy в данном графике. Было бы любопытно, если бы кто-нибудь прислал мне такой же результат!
Обновление: команда PyPy увидела оригинал статьи и внесла правки.
Значит, Python 3 быстрее, чем Python 2?
Именно! Практически в каждом тесте. Исключения есть только в тесте crypto_paes, где Python 3 был на 1.35 медленнее (из-за типов чисел) и в тесте python_startup медленнее на 1.39.
Медленный запуск Python 3 – это главная проблема, над которой работает основная команда CPython в версиях 3.8 и 3.9.
Помимо этих двух тестов, Python 3 в 1.2–1.3 раза быстрее по своим показателям в остальных тестах. Вы можете заметить улучшения, обновившись до Python 3.7, когда он появится на полках в этом году.
Почему PyPy такой быстрый и почему им не пользуются все?
PyPy быстрее CPython благодаря своему компилятору just-in-time. Компиляторы JIT имеют огромное преимущество, так как являются крайне эффективными при выполнении предсказуемых и повторяющихся задач. Суть наших контрольных показателей включает в себя запуск одних и тех же кусков кода несколько раз подряд для точности, ускорения приложения и снижения появлений ошибок. Здесь PyPy блистает в каждом таком тесте.
Недостаток JIT компилятора и PyPy в целом – это цена запуска. Другой недостаток – это слабая совместимость с С-расширениями. Так как Python (CPython, официальный PSF Python) написан на С, многие сторонние расширения PyPi используют этот язык. Хороший пример – Numpy, так как большая его часть написана на оптимизированном коде С. При установке numpy при помощи pip, он использует ваш локальный компилятор С и строит бинарную библиотеку для вашей среды Python для выполнения.
Так как PyPy написан на Python, множество модулей не может работать с PyPy. Так что будьте бдительны и всегда проверяйте.
Кроме этого, PyPy переживает те же проблемы, что и CPython – переход версии языка 2 на версию 3. PyPy3 до недавних пор был достаточно нестабильным, что можно заметить по контрольным показателям, где присутствуют странные несоответствия с PyPy. Также были замечены проблемы с пакетами (PyTest), отбрасывающими поддержку PyPy3, хотя эту проблему пытаются уладить.
Подведем итоги
Python 3.7 – самая быстрая официальная версия Python, при этом PyPy демонстрирует самую быструю производительность (по крайней мере, в рамках наших тестов).
Хотелось бы в будущем увидеть производительность PyPy3 даже выше, чем это делает PyPy, так как версия Python 2 используется все реже и реже.