company_banner

Вышел новый PyCharm 4: больше да лучше!

    Всем пятничный привет от JetBrains!

    Мы рады рассказать вам, что на днях вышел новый PyCharm 4, который уже доступен для скачивания.

    С момента предыдущего релиза PyCharm 3.4 прошло ровно полгода, за это время мы поработали над разными подсистемами PyCharm'а, и теперь рады рассказать, что же интересного и важного появилось в новой версии PyCharm.

    В ней мы сделали упор на инструменты для научного программирования. Пожалуй, главной и долгожданной особенностью этого релиза является поддержка IPython Notebook прямо в PyCharm:





    Теперь все привычные для IPython Notebook действия можно выполнять прямо в IDE. Поддерживаются разные типы ячеек, есть возможность запускать их по отдельности и видеть результаты выполнения, в том числе и графические, прямо в редакторе! Конечно, некоторые вещи еще не поддержаны, но в целом все основное уже отлично работает.

    Возникает вопрос: какой смысл использовать IPython Notebook внутри PyCharm вместо обычного IPython? Ответ прост: в дополнение к базовой функциональности IPython Notebook, PyCharm предоставляет автодополнение, навигацию, подсказки и прочие плюшки, характерные для сообразительной и умной IDE. Мы просто взяли и объединили плюсы обоих подходов на базе PyCharm.

    Еще одной добавкой в копилку научной составляющей функциональности PyCharm 4 является графический просмотрщик массивов NumPy:



    Одновременно с этим мы добавили улучшенную поддержку кода, написанного с использованием библиотеки NumPy, и включили поддержку matplotlib в интегрированной консоли Python. В будущем мы планируем развивать поддержку научных библиотек и инструментов.

    Разработка приложений в PyCharm 4 стала еще эффективнее благодаря специальной поддержке инструментов BDD (Behavior-Driven Development):



    PyCharm полностью поддерживает два наиболее популярных инструмента для разработки с использованием BDD — behave и lettuce. IDE понимает ваши текстовые требования на Gherkin, распознает соответствие текстовых требований и их реализации в коде, позволяет быстро навигироваться между ними, помогает не только автоматически создавать и изменять тесты, но и эффективно работать с ними. Результаты запуска тестов представляются в удобном графическом виде, так что вы можете легко просматривать результаты и навигироваться по ним.

    Еще в PyCharm 4 мы серьезно улучшили отладчик. Прежде всего, мы объединили код отладчика PyCharm с кодом из оригинального репозитория PyDev. Это значит, что теперь работа ведется над единым кодом, и улучшения как со стороны команды PyCharm, так и со стороны PyDev попадают сразу в общий репозиторий. Благодаря этому объединению и активной работе над новым отладчиком, PyCharm 4 теперь умеет присоединяться к выполняемому процессу:



    После присоединения становятся доступны все привычные функции, доступные из отладчика PyCharm. Можно ходить по точкам останова, просматривать и изменять значения переменных и объектов. В целом — все без каких-либо ограничений. Заметим, что все это доступно на любой платформе.

    В дополнение к этому из отладчика можно просматривать схему обращений к любому объекту в специальном окне во время отладки вашего кода:



    Есть и еще одно полезное улучшение: отладчик PyCharm стал работать с шаблонами Jinja2 точно так же, как и с шаблонами Django:



    Этим все не ограничивается, в PyCharm 4 есть еще ряд важных усовершенствований:
    • улучшенное окно консоли Python/Django;
    • возможность автоматически оставлять консоль активной после запуска проекта, чтобы сохранить контекст и продолжить работу в ней;
    • просмотр дерева обращений к методам;
    • улучшенная система управления пакетами;
    • поддержка unittest subtests для Python 3.4;
    • новый мастер создания проектов.


    Кроме специфичных только для Python вещей новый PyCharm 4 вобрал в себя улучшения из WebStorm 9, например, интеграцию Gulp, а также улучшения из платформы IntelliJ, на которой базируются все наши продукты, включая IntelliJ IDEA 14. Так, в PyCharm появился улучшенный UI в настройках IDE и при создании проекта, распознавание стиля кода в отдельных файлах, а также умный backspace, который учитывает эти стили, улучшенный многокурсорный режим редактирования и много чего еще.

    Кстати, если вы пропустили эту новость, в октябре 2014 года линейка продуктов компании JetBrains пополнилась необычной модификацией нашей Python IDE — PyCharm Educational Edition. Это — бесплатная редакция PyCharm c открытым исходным кодом, которая специально разработана для людей, желающих эффективно изучать программирование, а также для преподавателей, которые хотят создавать курсы на базе PyCharm с использованием интерактивных упражнений. Можете скачать бесплатный Pycharm Educational Edition прямо сейчас.

    Узнайте еще больше о новшествах и улучшениях в PyCharm 4 на нашем сайте, и скачайте новую версию IDE для вашей платформы.

    Программируйте с удовольствием!
    -Команда JetBrains
    JetBrains
    278,91
    Делаем эффективные инструменты для разработчиков
    Поделиться публикацией

    Комментарии 45

      +1
      Я новичок в Питоне и в программировании в целом :), скажите, а возможна ли работа в PyCharm автокомплита и подсказок для модулей с динамическим привязыванием других модулей (во время выполнения), не уверен что смогу сказать точнее… Отсутствие такой функции сильно усложняет работу, мне как новичку — приходится открывать все связанные модули в табах и смотреть их методы…
        0
        … к примеру взять хотя бы PyX — Python graphics package.
          0
          EvilGen, да, конечно. PyCharm проверяет все связанные модули и билиотеки, индексирует их, импортирует имена и использует эту информацию для автодополнения и подсказок!
            0
            Хм, в PyCharm CE не работает? Я его неправильно готовлю?
              0
              CE и Pro должны работать одинаково в этом плане. Сложно сказать не глядя. Я могу порекомендовать написать в наш суппорт с более детальным описанием проблемы и модулей, которые вы пытаетесь использовать. Там быстро проверят, посмотрят и подскажут intellij-support.jetbrains.com/anonymous_requests/new
                0
                Не уверен, что смогу это по уму описать англоязычному (?) суппорту.

                И еще проблема, модуль BPY для Blender, так по уму и не удалось прикрутить, как ни старался, PyCharm не понимает его внутреннюю структуру, не понимает как запустить в Блендере мой скрипт и где брать связанные библиотеки…

                Keyboard interrupt при вводе данных и Keyboard interrupt in debug mode не понимаем IDE что вообще жутко.

                Хотя я все-равно ей пользуюсь :)))
                  0
                  Наш суппорт понимает по русски =) Так что не стесняйтесь, пишите!
                    0
                    Вы ведь используете этот подход для работы с bpy?
                      –1
                      не совсем этот, мне не нравится всякий раз запускать скрипт в консоле… повторяю я не настоящий программист :)

              +7
              pycharm — лучшее, что будет в вашей жизни :)
                0
                Искал решение по аналогичному вопросу — нужен был автокомплит и «jump to implementation» для динамически создаваемого объекта, пришел к решению — генерируется фейковый py файл с классами и фековыми методами отражающий всю нужную структуру.
                  +1
                  В Python 3.x можно использовать аннотации, чтобы PyCharm знал, какой тип у динамического объекта, если я вас правильно понял. В Python 2.x можно использовать докстринги с описанием типов аргументов.

                  Смотрите тут подробнее: www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html

                  Так же вы можете использовать кеширование информации о типах при отладке (включается в настройках), но это не очень удобно на практике.
                  0
                  По поводу «улучшенное окно консоли Python/Django» – если вывести в ней длинный словарик – он выводится в одну длиииинную строку по которой невозможно делать навигацию.
                  Можно щелкнуть в конце окошка и двигаться стрелочками по одному символу или сразу в конец строки.

                  Это баг или фича?)
                    0
                    Сложно сказать баг ли это, фича ли ) Но на это есть реквест. Голосуйте, мы постараемся пофиксить.
                    0
                    Отличные новости!
                    Вопросы:
                    1. Какая политика обновления для владельцев PyCharm 3-й ветки?
                    2. Ни слова про быстродействие, в какую сторону оно изменилось?
                    3. Планируется ли ide для golang? ;)

                    Спасибо

                      0
                      1. политика обновлений у нас общая вне зависимости от версий. приобретая лицензию вы получаете 1 год подписки на бесплатные обновления для любой версии PyCharm. по истечении годового периода есть возможность продлить подписку еще на год (license renew) по более низкой цене. так что если у вас подписка действующая, то обновляйтесь бесплатно!
                      2. над быстродействием мы работаем постоянно, с каждым новым релизом оно все лучше. Улучшения приходят не только от команды PyCharm но и от платформы intellij.
                      3. на сколько мне известно — таких планов пока нет
                        +2
                        Для golang есть сторонний плагин и, судя по активности, он более чем живой plugins.jetbrains.com/plugin/5047?pr=idea
                          0
                          Но местами глючный, к сожалению. В особенности, при стандартной структуре проекта, в котором библиотеки лежат в src/{libname}, а package main в корне проекта. Например, github.com/coreos/etcd
                        0
                        {% extends '/templates/master.jinja2' %}

                        Эх, всё ещё пишет, что unresolved template reference. Работа с Jinja2 стала лучше? Ну и славно тогда. Спасибо за обновку :)
                          0
                          Это похоже на известный баг. Мы посмотрим, сможем ли пофиксить в следующем апдейте.
                            0
                            Ну там товарищ нашёл решение этой проблемы. А вот в самих шаблонах всё это окрашивается в эээ… предупреждающий такой цвет. И что-нибудь типа <link rel=«stylesheet» href="/static/css/smslider.css"> тоже. В принципе не так уж и плохо, но такие вот ошибки-предупреждения, которые никак невозможно исправить, — несколько расстраивают.
                              0
                              У меня после применения указанного решения перестало подсвечиваться. И теперь по Ctrl+B находит шаблон от которого наследюсь.
                              Одно только но: путь я не начинаю со слеша. Jinja2 и так ищет от корня, но если слеш указать — ИДЕЯ это не правильно понимает видимо.
                                0
                                М… У меня директория templates отмечена как «Template Folder» по умолчанию, проект начинался как Pyramid Project, всё само расставилось как надо. Попробовал убрать слеш, сохранить, — не помогло. Видимо, как-то оно по-разному себя ведёт…
                                  0
                                  UPD: убрал вообще /templates/ — теперь всё отлично, хоть и не так красиво. А что насчёт путей, начинающихся со /static/?
                                    0
                                    Хм, и при том что в шаблоне писали templates/ в начале пути, jinja работала? У меня обычно лоадер jinja указывает внтурь папки templates (не знаю как в Пирамид поступают) и по этому обращение к шаблонам обычно без префикса template/.
                                    Про static — тут я не знаю что подсказать, у меня работает из коробки. Папка static лежит в корне модуля в котором лежат шаблоны (для проекта было актуально разделение на модули), этого оказалось достаточно.
                            0
                            Второй день сижу на 4й версии и меня как-то начала напрягать частота сообщений о том что файл на диске и в памяти отличаются, с предложением выбора чего же показывать в редакторе (обычно появляется после того, как я переименую переменную по Shift+F6). Это излечимо? OS X 10.9.5, Apple Java 6.

                            Ну и баг с модулями py и py.test так и не починили :-(

                            Ну и да — спасибо за поддержку ipython notebookов.
                              0
                              Если проблема воспроизводится с постоянством, лучше зафайлить баг и приложить логи.
                              Мы в скором времени будем делать баг апдейты, так что починим.
                              0
                              Обработка django шаблонов похоже сломалась, все красным красно стало (хотя некоторые новые вещи лучше подсвечивает), при отключенной проверке орфографии подсвечиваются typo ошибки, некоторые из которых сами тэги django шаблонов.

                              Вобщем вернулся на 3.4 еще нельзя пользоваться.

                              пример шаблона django
                              image
                                0
                                Я могу вас попросить зафайлить баг с вашим примером? youtrack.jetbrains.com/issues/PY
                                Это поможет нам лучше понять проблему и отслеживать ее фикс.
                                  0
                                  Добавил
                                  Думал что ошибка может быть из-за переноса, но вспомнил что сегодня все таки дошли руки удалить все профили чтобы победить ошибку c импортом datetime, так что pycharm 4 был поставлен с нуля.
                                    0
                                    У вас, вероятно, не выбран язык шаблонов в настройках Settings > Languages and Frameworks > Python Template Languages.
                                      0
                                      Точно, спасибо, не знал о настройке, думал он вообще сам определяется.
                                        0
                                        Должен сам определяться, разбираемся почему не всегда.
                                0
                                Спасибо! Обновляемся.
                                  0
                                  Еще вопрос, в настройках: «Languages & Frameworks -> JavaScript -> Code Quality Tools»

                                  Есть JSLint и JSHint, есть возможность настроить их, чтобы они работали внутри шаблонов?
                                    +1
                                    Спасибо, обновился, и лицензия автоматом перенеслась, клёво!.. А чего плагины тоже не перенеслись? Пришлось в ручную заново устанавливать.
                                      0
                                      Хочу еще добавить что скорость поиска по всему проекту офигенно ускорилась. Очень классно!
                                      +5
                                      Повторюсь с вопросом: habrahabr.ru/company/JetBrains/blog/242103/#comment_8108959
                                      JetBrains, вы не планируете единой, bundle лицензии (для продуктов на базе idea)? Часто использовать rubymine, pycharm, webstorm и т. п. отдельно удобнее, чем использовать соответствующие плагины в idea ultimate, но покупать их ради этого, когда уже куплена idea ultimate выглядит overkill'ом.

                                        +1
                                        графический просмотрщик массивов NumPy
                                        О, да! Прощай Spyder! :)
                                          0
                                          Всё же инструкцию по установке, как мне кажется, для linux — пользователей стоит переписать в соответствии с FHS.
                                          Вот отличный пример, хотя и немного устаревший.
                                          –1
                                          На QT, например, не думали портировать?
                                          Простите если странный вопрос, не люблю софт на яве, личное ) Но PyCharm использую, спасибо!
                                            0
                                            В системе Windows 8.1 установлены Python версий 3.4.2 и 2.7.9, IDE PyCharm CE 4.0.5.
                                            Если текущим интерпретатором для проекта выбран Python 3.4.2, точки останова работают. Но если выбрать Python 2.7.9, то отладчик не останавливается в точках останова, выполняя программу до конца. Пробовал удалить Python 3, но отладчик так и не заработал. Как исправить?
                                              0
                                              Пожалуйста опишите свою проблему здесь youtrack.jetbrains.com/issues/PY (Создайте новый тикет — баг). Можно по-русски. Вероятно разработчики попросят логи, которые можно посмотреть в Help | Show log in Files
                                              0
                                              Здравствуйте, я тут товарищу с месяц назад подарил книгу по питону и присоветовал Ваш Edu-продукт/ Товарищ мой совсем ещё юн в увлекательной практике написания кода и Ваш IDE для него, как мне кажется — первый опыт )) Вот он прошёл Ваш обучающий курс в 50 вопросов, горит желанием скачать какие то ещё, более глубокие по уровню изучения языка курсы и не может найти репозиторий. Дайте пожалуйста ссылку человеку, возможно мы теряем нового Гвидо ))) Спасибо. Не то чтобы очень важно, но мы же в ответе за всех кого приручили.

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

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