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 252,58
    Компания
    Поделиться публикацией
    Комментарии 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
                                            Если на старой лицензионной модели (лицензия куплена до 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 проверяла наличие фикстур(на случай опечаток) и их типы для. Руками аннотировать в каждом тесте не очень удобно.

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

                                                                        Самое читаемое