company_banner

Релиз 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
    JetBrains
    Делаем эффективные инструменты для разработчиков

    Similar posts

    Comments 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 устанавливать программы распаковкой архивов как-то вообще не торт.
                                • UFO just landed and posted this here
                                    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 проверяла наличие фикстур(на случай опечаток) и их типы для. Руками аннотировать в каждом тесте не очень удобно.

                                                                          Only users with full accounts can post comments. Log in, please.