company_banner
24 ноября 2016 в 18:29

Релиз PyCharm 2016.3: Полная поддержка Python 3.6, улучшения в Python консоли, обозревателе переменных, и многое другое

Всем привет! Вчера мы выпустили новый PyCharm 2016.3, который уже доступен для скачивания.
Этот релиз является последним крупным обновлением с новой функциональностью в 2016 году.


С момента предыдущего релиза PyCharm прошло ровно 4 месяца. За это время PyCharm получил ряд новых полезных улучшений в инструментах для Python, Django, веб и научной разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.

Полная поддержка Python 3.6




В первую очередь отметим, что PyCharm 2016.3 полностью поддерживает последний Python 3.6. Сейчас Python 3.6 находится в стабильной beta-стадии, и мы хорошо подготовились к его официальному релизу, запланированному на декабрь этого года. Поддерживаются следующие стандарты:

  • PEP 526: Синтаксис аннотаций переменных. Теперь PyCharm понимает новый синтаксис аннотаций типов переменных и использует эту информацию для вычисления типов в коде. В конечном счете это выражается в улучшенном анализе и автодополнении кода. Также по Alt+Enter PyCharm умеет конвертировать аннотации в комментариях в новый синтаксис и обратно.

  • PEP 498: Форматированные строчные литералы. PyCharm понимает синтаксис новой конструкции f-strings и предоставляет специальное автодополнение внутри f-strings. По Alt-Enter можно автоматически сконвертировать традиционно отформатированные строки с помощью % и str.format() в новый формат, введенный в Python 3.6.

  • PEP 515: Подчеркивания в численных литералах. Этот стандарт расширяет синтаксис Python. Теперь подчеркивания могут служить разделителями между цифрами в численных литералах.

  • PEP 525 и PEP 530. Эти два стандарта описывают асинхронные генераторы и включения. Для них мы добавили в PyCharm новые инспекции.

Поддержка Django




Мы дополнили поддержку Django-проектов парой небольших улучшений:

  • В PyCharm 2016.3 можно создавать новый Django-проект для запуска и отладки на удаленной машине без необходимости настраивать локальный интерпретатор. Можно указать интерпретатор, находящийся на VM, в Docker-контейнере или удаленном сервере, на этапе создания проекта.

  • Мы реализовали автодополнение, специфичное для Django-форм в Django Views, реализованных в классах, — таким же образом, как в прошлом релизе для Views, реализованных через функции.

Многострочные команды в Python-консоли




В этом релизе мы пофиксили много багов в Python-консоли, в основном касающиеся форматирования и отображения многострочных команд. Теперь экспериментировать и писать код в консоли стало намного удобнее и визуально приятнее. В дополнение ко многим небольшим улучшениям Python консоли, мы добавили автодополнение для IPython по нажатии Tab.

Обозреватель переменных


Теперь в режиме отладки в рабочей области находятся только переменные, используемые в текущем проекте. Все служебные и системные переменные скрыты под разделом “Special Variables”. Если используется IPython-интерпретатор, все служебные переменные IPython также помещаются в “Special Variables”:



Для больших массивов, например массивов NumPy или pandas DataFrames, мы добавили возможность просматривать их в отдельном специализированном обозревателе. Достаточно нажать “View as...” в обозревателе переменных:



Активация virtualenv в терминале




Если в качестве интерпретатора проекта используется virtualenv, виртуальное окружение автоматически активируется при запуске встроенного терминала. Автоматическая активация venv работает для bash, zsh, fish и Windows cmd.

Поддержка Docker Compose




На этапе конфигурации удаленного интерпретатора, при выборе Docker Compose конфигурации теперь можно указать несколько файлов, расширяющих Compose-конфигурацию. Если Compose-файлы используют переменные окружения, задать их теперь можно на этом же этапе в специальном поле.

Coverage для ветвлений




В PyCharm 2016.3 встроенный инструмент для анализа покрытия кода был улучшен благодаря новой опции “Branch coverage”. Эта опция по умолчанию отключена, но может быть активирована в настройках Settings (Preferences) | Build, Execution, Deployment | Coverage | Python coverage. Когда опция активирована, PyCharm добавляет информацию о построчном покрытии альтернативных ветвлений в коде к стандартному отчету профилировщика, как показано на скриншоте.

Построчное профилирование




В предыдущем релизе мы добавили поддержку VMprof и уже в этом релизе улучшили ее, добавив режим “profile lines” к отображению прямо в редакторе кода. Этот режим работает по умолчанию при использовании VMprof в режиме профилирования. После сбора статистики, в дополнение к просмотру стандартных отчетов профилировщика, PyCharm отображает результаты построчной профиляции прямо в редакторе. Строки, использующие значительную часть процессорного времени, отображаются разными цветами, от желтого к красному, по возрастанию ресурсоемкости. Чтобы попробовать этот режим, нужно установить пакет vmprof на текущий интерпретатор проекта.

Прочие улучшения


В этом релизе также значительно усовершенствована поддержка передовых веб-технологий: поддержка Flow, улучшенная поддержка TypeScript, поддержка PostCSS, Stylelint и многое другое:



В PyCharm 2016.3 также вошли многие новые возможности и усовершенствования из IntelliJ Platform: улучшены эргономические характеристики и скорость работы журнала VCS, доработано диалоговое окно объединения (Merge), подсветка синтаксиса в диалоговых окнах Diff и Merge, а также интерфейс для управления удаленными репозиториями Git в проекте:



Кроме того, улучшены средства работы с базами данных — спасибо коллегам из команды JetBrains DataGrip:



Ниже короткое демо на английском от Пола Эверита, нашего девелопер-адвоката:


Если вам стало интересно, мы предлагаем 30-дневную бесплатную пробную версию для полнофункционального PyCharm Professional Edition, а в разделе цен можно узнать о стоимости подписки. Многие улучшения этого релиза также доступны в бесплатном PyCharm Community Edition. Различия между PyCharm Professional и Community можно посмотреть здесь.

Узнайте больше о нововведениях и улучшениях в PyCharm 2016.3 на нашем сайте.

Следите также за статьями и обновлениями в нашем англоязычном блоге. Мы будем рады ответить на любые ваши вопросы в комментариях.

Программируйте с удовольствием!
Команда JetBrains
Автор: @dmitryfilippov
JetBrains
рейтинг 243,25

Комментарии (70)

  • 0
    А поддержка синтаксиса kivy из коробки будет? А то представленный на сайте jar модуль уже слегка устарел, и много чего не знает.
    • 0
      Пока не планировалось, но люди просят. Проголосуйте здесь пожалуйста https://youtrack.jetbrains.com/issue/PY-8238.
  • +1
    Есть ли по Pycharm подробный мануал на русском языке, для новичков в Python? Или это может быть только для коммерческой версии?
    • +2
      К сожалению документации, гайдов или туториалов на русском нет и не планируется.
    • 0
      Уж не знаю, покроет ли ваши потребности PyCharm Edu/.
      Там, правда, все в куче и Python, и по самой среде.
    • 0
      Можете посмотреть видео на русском https://www.youtube.com/watch?v=DpscmxH2LQU
  • 0
    Какова ситуация с notebooks на high-DPI?
    • 0
      Никаких улучшений в этом направлении пока не было. Но мы планируем серьезнее заняться Notebook.
  • 0
    Я не питонист, поэтому задам, возможно, глупый вопрос: а почему не реализовали семантическую подсветку? Она не актуальна в Питоне или, может, реализовали, но не упомянули в анонсе?
    • 0

      Вы о чем?!

      • +1
        Кажется об этой фиче https://www.youtube.com/watch?v=8WRH59PQ5Dk
    • 0
      Мы ее не реализовали в этом релизе. На сколько мне известно, пока семантическая подсветка есть только в IntelliJ IDEA 2016.3, и то не по умолчанию. Возможно мы включим эту функциональность в следующем релизе. В любом случае кое что нужно доработать.
      • 0
        Ещё она есть в CLion 2016.3. Собственно, я потому и заинтересовался, что PyCharm — первый продукт анонсируемый на этой неделе, в котором про неё не сказали. Вот и задумался — это в Питоне что-то особенное или какие-то другие причины.
        • 0
          Семантическая подсветка также есть и в свежем PhpStorm 2016.3.
          Похоже, команда PyCharm отстала от коллег из соседних отделов.
      • 0
        Еще в PHPStorm 2016.3 она есть
  • 0

    Не злорадства ради, но может ли быть полная поддержка 3.6 без 3.5?
    Синтаксический анализатор до сих пор не понимает простую конструкцию


    for i in range(10): self.assertEquals(i * 2, await self.x(i))

    https://youtrack.jetbrains.com/issue/PY-20682

    • 0
      В 2016.3 (даже CE) уже выглядит нормально.
      Что понравилось — подсветка ключевых слов и сообщения об ошибках синтаксиса зависят от выбранной версии интерпретатора.

      • 0
        оффтопика ради, что за тема?
        • 0
          кажется Monokai
        • 0
          Monokai
          хотя иногда (при лампах дневного света) в ней хочется посветлее фон.
          А для обычных накаливания — норм.
    • 0
      Спасибо! Постараемся как можно быстрее пофиксить.
  • +1
    Когда уже можно будет обновиться через apt, а не скачивать архив с сайта?
    • 0
      У меня EAP автоматически обновляется сам.
    • 0
      Абсолютно поддерживаю. В 2016 устанавливать программы распаковкой архивов как-то вообще не торт.
    • 0
      Неужели для вашего дистрибутива нету репозитория с тем же самым архивом внутри deb-а?
    • 0
      Не знаю как там сейчас в Ubuntu но в Arch все можно установить с репозитория:
      yaourt -S pycharm-professional
      
    • +1
      Мы сейчас как раз обсуждаем как это реализовать. Будем делать для всех продуктов единообразно.
  • 0
    Проект на Django, тесты на py.test. В настройках PyCharm выбран py.test в качестве тестового фреймворка.
    Если в настройках включить так же поддержку Django, то PyCharm начинает запускать тесты через свой аналог manage.py test, вместо py.test. Хотелось бы, чтобы поддержка Django не меняла способ запуска тестов.
    • 0
      На самом деле это так by design. Если необходимо запускать не Django тесты, то можно создать дополнительную run configuration. Оригинальный issue с комментариями https://youtrack.jetbrains.com/issue/PY-19727
      • 0
        Ничего не смыслю в дизайне. Наверняка, дизайнеры старались сделать как лучше. Однако, пользоваться будет гораздо удобнее, если появится возможность эту фичу отключить. Plsss… :)
  • +6
    Хотел сказать огромное спасибо за ваш продукт) В том числе благодаря ему мы двигаем науку понемногу. Обычно вперед) Хотя, конечно, работаю с Community edition. Денег на ПО у нас очень редко выделяют. Впрочем, это не мешает пользоваться им с удовольствием.
    • 0
      Спасибо за отзыв!
  • 0
    Вопрос:

    Когда заканчивается лицензия — он продолжает работать (но обновления не поступают), либо он переходит в режим фрии версии?
    • 0

      Продолжает работать без обновлений.

    • 0
      Если на старой лицензионной модели (лицензия куплена до 2 ноября 2015) то вы просто не получаете обновления а продолжаете пользоваться последней версией на момент истечения срока лицензии.
      С новой подписочной можелью немного сложнее. По истечении подписки, если не продлевать, то придется откатиться на версию, которая была во время покупки (т.е. лишиться всех обновлений за время подписки).
  • 0
    консоль в версии под mac os сломали ( раньше подхватывались все переменные окружения текущего пользователя, а сейчас тупо bash грузится и все…
    • 0
      Спасибо! Мы планируем пофиксить это в ближайшем баг апдейте. https://youtrack.jetbrains.com/issue/IDEA-164435
  • –5
    Продукт, конечно, прекрасный, но уверен, если бы вы установили меньшую цену, то покупок было бы на порядок больше. Знаю много людей, которые не могут психологически принять такую цену, но готовы в принципе платить. Я сам разработчик и почти 10 лет продаю биллинг, так вот крупные компании просто не понимаю за что они должны платить такие деньги (на самом деле небольшие, меньше одной зп специалиста) и фиг им объяснишь, что твой продукт окупится в тысячу раз. Пришлось снизить цены, покупают. Тоже с pycharm — возможно он стоит таких денег, ну не могут пока психологически наши прогеры принять такие цены.
    • +2
      Для решения таких проблем есть помесячная подписка :)
      • 0
        Каждый месяц покупать подписку будет дешевле?
    • –1
      В момент написания был уверен, что будут минусы. Хабравчане не склонны к диалогу, жаль
    • +1

      9 долларов в месяц весь первый год.
      Второй год — скидка 20%.
      Третий год — скидка 40%.


      Куда уже меньше? :)

      • 0
        Справедливости ради, подписка для организаций в два раза дороже. А разработчики не все готовы тратить личные деньги.
        Но мне тоже не кажется, что подписка сейчас дорогая.
    • +2
      Минусуют, кмк, потому, что наверняка в JB есть ни один человек (скорее даже отдел), который занимается тем, что анализирует различного рода данные (по продажам и прочей активности, связанной с продуктами JB и вообще с миром IT), у которого, в частности, стоит задача поиска оптимально стратегии продаж (цена (возможно в зависимости от региона), подписка или единоразовый платеж и т.д.). И вероятность того, что существует такой человек со стороны, который не имея подобной информации может в двух предложениях может описать действия, который нужно произвести компании для того, чтобы увеличить прибыль, крайне мала. А вы претендуете на подобное.
      • 0
        Если так, то прекрасно. Хотя, зная как маркетологи из-за сиюминутной выгоды убивают бизнес, предположил, что здесь может быть такая же ситуация
        • 0
          Эм, вы вообще в курсе как цена на продукты JB исторически менялась? Или сколько стоят/стоили продукты близкого уровня от конкурентов? Я бы сказал, что у JB сейчас очень и очень низкие цены.
    • 0
      если бы вы установили меньшую цену, то покупок было бы на порядок больше
      Откуда такая уверенность? Мне, например, кажется, что даже если цену уменьшить в 2 раза, то покупателей в два раза больше не станет.
  • 0
    Теперь экспериментировать и писать код в консоли стало намного удобнее и визуально приятнее. В дополнение ко многим небольшим улучшениям Python консоли, мы добавили автодополнение для IPython по нажатии Tab.

    Это, конечно, хорошо, но когда же вы обратите внимание вот на это?
    https://youtrack.jetbrains.com/issue/PY-10985


    3 года уже висит! И экспериментировать в консоли без быстрого автодополнения из истории ну совсем не приятно!

  • 0
    Для тех кто уже не студент. На stepik.org при обучении на IT-шных курсах можно получить образовательную лицензию PyCharm (и не только) на 3 месяца. С возможностью продления.
  • 0

    Забагованный релиз какой-то. С чем уже столкнулся:


    • один раз завис
    • Reformat Code (Ctrl+Alt+R) не работает в html документе (по крайней мере с django-шаблонизатором), но в некоторых файлах работает (в том числе с шаблонизатором)
    • В дополнение к предыдущему: пишу в html — block, нажимаю Tab, чтобы "раскрыть" его — получаю:

      при этом курсор стоит не внутри block, а перед открывающейся фигурной скобкой {%


    • 0
      Это очень странное повдение. Могу я вас попросить зарепортить это к нам в трекер? https://youtrack.jetbrains.com/issues/PY Очень помогут логи (Help | Find logs in files).
      В settings | Languages & Frameworks | Python Template Languages что стоит?
      • 0

        html, xhtml, xml
        С шаблонами вообще все плохо стало: раньше можно было сразу в файл стилей или js-скрипт перейти с помощью gd (VimIdea использую, не помню аналог команды в ide), а теперь не работает, py файлах норм

      • 0

        Полагаю я нашел "виновника" — это либа django-environ, если ее не использовать, все нормально работает. Видимо pycharm не понимает где искать файлы и тд


        При этом в pycharm 2016.2 все нормально работало и с django-environ.
        Позже зарепортю вам в трекер.

  • 0
    dmitryfilippov Спасибо за постоянные улучшения моего любимого продукта!
    Есть одна проблема, которая не даёт мне спать по ночам. А именно, автоматическая генерация Docstrings из аргументов функции. Мы в своём проекте используем PyContracts, как библиотеку проверки типов. У неё слегка отличающийся синтаксис аннотаций, который вы из-коробки не поддерживаете.
    Возможно ли будет когда-нибудь описать свой стиль аннотаций?

    Дефолтный ReStructuredText
    Результат Insert documentation string stub



    Синтаксис PyContracts:

    • 0
      PyCharm поддерживает несколько форматов docstrings.
      В settings | tools | Python Integrated Tools есть раздел Docstrings format.
      Кроме restructured text поддерживаются Epytext, numpy, google…
      Кажется PyContracts использует свой формат отличающийся от всех поддерживаемых… Тем не менее, я рекомендую завести feature request https://youtrack.jetbrains.com/issues/PY
  • 0
    dmitryfilippov, что насчёт автодополнения для PyQt?
    • 0
      Оно должно работать. Что именно не автодополняется?
      Лучше всего описать проблему или запрос прямо в трекере https://youtrack.jetbrains.com/issues/PY?q=pyqt
      • 0
        https://youtrack.jetbrains.com/issue/PY-14484#u=1416515940251
        Действительно, это проявляется только внутри virtualenv.
        • 0
          И ещё https://youtrack.jetbrains.com/issue/PY-12498, независимо от окружения.
  • 0
    dmitryfilippov Кстати, а как корректно tar.gz версию для Linux обновлять? Там sh-скрипт, насколько я понимаю. Uninstall предыдущей версии как корректнее сделать?
    • 0
      Корректно распаковать tar.gz рядом с предыдущей версией (отдельно)… запустить, импортировать настройки и проверить что все работает. После этог опможно просто удалить папку с предыдущей версией.
      • 0
        Спасибо. Под kde пришлось руками kdeinit править в файле .desktop. deb-файл и репозиторий был бы уместнее. Но это, конечно, вопрос ваших приоритетов в разработке. Просто отвык что-то руками мимо пакетного менеджера делать.
        • 0
          Согласен. Устанвливать распаковкой архива и руками добавлять десктопный лаунчер не самое удобное занятие. Мы сейчас обсуждаем как сделать лучше это для всех продуктов JetBrains
          • 0
            Логически для конечного пользователя напрашиваются две ветки репозиториев — Community и Commercial. Я просто не знаю, сколько у вас пользователей именно на *nix сидят.
  • 0
    Не очень понял как работает проверка покрытия кода тестами.
    В CE не вижу такой кнопки. Или в ней не работает?
    • 0
      Code coverage поддерживается только в pro версии. Попробуйте Professional, там доступен 30-дневный триал.
  • 0
    dmitryfilippov в PyCharm Professional Edition входит весь функционал WebStorm для веб-разработки?
    • 0
      Да. Все из WebStorm поддерживается в PyCharm либо по умолчанию, либо в виде бесплатных плагинов из официального репозитория.
  • 0
    Предложение: а нельзя ли научить pycharm дружить с фикстурами py.test? Это было бы реально удобно, если бы pycharm проверяла наличие фикстур(на случай опечаток) и их типы для. Руками аннотировать в каждом тесте не очень удобно.

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

Самое читаемое Разработка