Релиз PyCharm 2.0

    Сегодня компания JetBrains представила релиз новой major версии PyCharm, интегрированной среды разработки для Python, Django и Google App Engine. Среди новых фич PyCharm 2.0 стоит отметить:
    • Поддержку двух новых языков шаблонов, Jinja2 и Mako
    • Поддержку Cython
    • Интеграцию с coverage.py для анализа code coverage
    • Поддержку CoffeeScript и встроенный отладчик для JavaScript
    • Переработанный интерфейс основного окна приложения, улучшенную интеграцию с платформами Mac OS X и Linux
    Как и раньше, попробовать PyCharm можно бесплатно в течение 30 дней, а для open-source проектов есть возможность получить бесплатную лицензию. Скачивайте, пробуйте — будем рады вашему фидбэку.
    Поделиться публикацией

    Похожие публикации

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

      +3
      Если включить Django тимплейты в JavaScript то отваливается поддержка JavaScript библиотек, таких как Ext.JS и т.п.
        +2
        Не работает автодополнение для методов на связанных объектов в Django. Пишет что данный метод не найден у класса ForeignKey. Конечно, не найден, он же в классе на который ссылается, а не в самом ForeignKey…
          +1
          Напишите, пожалуйста, реквест в трекер с примером кода: youtrack.jetbrains.net/
          Поддержка ForeignKey у нас есть, видимо, мы не смогли обработать ваш конкретный случай.
            +1
            Если вы не поддерживаете их вот в таком случае, то в каком же вы их тогда поддерживаете?:)

              0
              Поддерживаем в том случае, когда вы не используете keyword argument в вызове ForeignKey. Уберите to= и будет всё работать.
              youtrack.jetbrains.net/issue/PY-5309 — пофиксим в 2.0.1
                +2
                И вот так тоже не работает, хоть и без keyword argument: youtrack.jetbrains.net/issue/PY-5310

                Вроде бы как коммерческий продукт, а тестирование что-то у вас отдыхает…
                  0
                  Да, про self тоже поправим, спасибо.
                    +2
                    И OneToOne тоже сломано — youtrack.jetbrains.net/issue/PY-5312
                      +1
                      Вы бы хоть на парочке реальных проектов прогнали свои инспекции и ой как много интересного нашли. А то такое впечатление, что вы тестируете чисто на сферических конях, сами продуктом не пользуясь.
                        0
                        Под Django своих проектов у нас нет, это правда. Тестируем на разных open-source проектах.
                          0
                          Вы так написали, как будто Django не open-source. :)
                    0
                    2.0.1 вышла, фиксов нет)
                      0
                      К сожалению, 2.0.1 пришлось выпустить раньше, чем мы планировали — фикс там только один, зато очень ценный. :) Всё остальное будет в 2.0.2.
                +2
                Автодополнение по related_name тоже не работает, хотя на багтреке висит уже такой баг со статусом Fixed.
                  +2
                  Опять же, в самом простейшем случае, без всяких изысков, простом как три копейки:

                    0
                    Как по мне, то здесь совершенно не очевидная ситуация, которая разрешается в runtime. С чего бы IDE мыслить о том, как могло бы быть.

                    PyCharm не пользуюсь, но подобные претензии выглядят как позёрство на ровном месте.
                      0
                      IDE не нужно мыслить о том, как могло бы быть, потому как Django работает вполне конкретным образом, и IDE ничто не мешает об этом знать. Что PyCharm во многих случаях и делает, хоть и с некоторыми недочётами, на которые справедливо указывает Алексей.
                0
                Да, к сожалению, это известная проблема, которая пока не пофикшена.
                +8
                сделайте, чтоли наконец, возможность скачать дистрибутив в виде rpm/deb пакета
                  0
                  Когда-нибудь обязательно сделаем.
                    +3
                    lol. когда-нибудь я куплю pycharm.
                  +1
                  Очень радует, что занялись внешним видом как под Linux, так и под Mac. Жалко у меня опенсурс-лицензия через пару месяцев истекает. А ее продлевать можно, если проект до сих пор активно разрабатывается?
                    +4
                    Да, продлевать open-source лицензию можно.
                      +1
                      Спасибо, а то как-то «подсел» я на PyCharm :(
                    0
                    Спасибо :) Пользуюсь только им, ну и n++
                      0
                      Кстати, очень-очень хотелось бы фичу которую я кажется видел в WingIde или в чем-то таком (сама IDE весьма посредственная, но фича мега-крутая): чтобы тип переменной брался из pydoc комментария.

                      Т.е. скажем пишу я:
                      def foo(bar):
                          """
                          :param bar str Тестовая переменная
                          """
                          bar.
                      


                      И вот после последней точки среда бы выдавала подсказки, считая что bar — это экземпляр класса str. Понятное дело, что тип можно и не указать (или переменная может быть нескольких типов), однако в очень многих случаях это было бы крайне приятной фичей.
                        0
                        Есть такая фича. Ещё в прошлой версии появилась.
                          0
                          а почему тогда в примере выше когда я написал последнюю точку то ничего не появилось?
                            0
                            Мы понимаем немножко другой синтаксис. Или epydoc:
                            @type bar str

                            Или sphinx:
                            :type bar str
                            0
                            Мы понимаем немножко другой синтаксис. Или epydoc:
                            @type bar str

                            Или sphinx:
                            :type bar str
                              0
                              А, хорошо, спасибо, так намного лучше:) Тогда было бы неплохо генерировать stub для этих переменных при действии «insert documantation string stub», как это делает PyDev:)
                                +1
                                И это мы делаем, если выбрать формат, в котором вы хотите их генерировать, в Settings | Integrated Tools.
                                  0
                                  Ок, спасибо) Правда я слабо понимаю как до этого можно было дойти самому)
                                    +3
                                    Как только мы придумаем способ сделать это более discoverable, так сразу и сделаем. :)
                                      0
                                      Например — сделать более 2-х видео туториалов.
                                        0
                                        Видео туториалы — штука безусловно очень полезная, и мы планируем делать их в большем количестве, но данную конкретную проблему они не решают.
                            0
                            так же поддерживается комбинированный синтаксис (see Sphinx domains):

                            def foo(bar):
                            """
                            :param str bar: Тестовая переменная
                            """
                            bar.

                            Note: В настройках нужно указать какой тип докстрингов используется в проекте (Settings->Python Integrated Tools->Docstring Format)
                            0
                            Спасибо за релиз. Очень порадовала поддержка дополнительных шаблонных движков и новый UI. Смотрится намного лучше.
                              +3
                              100500 извинений за оффтопик, но, думаю, этот пост — очень хорошее место, чтобы задать вопрос, который меня очень давно мучает.

                              Дело вот в чем — я работаю под Windows (на работе) или под Mac OS X (дома). Django и там и там крутится внутри Ubuntu Server на виртуалбоксе. На хост-системах, как правило, установлен минимальный набор (только Python + Django), из-за чего есть проблемы с автодополнением кода, когда, например, в проекте используется PIL.

                              Нельзя ли как-нибудь объяснить PyCharm-у, что на самом деле у меня питон и его окружение установлен на удаленном хосте, доступном, например, по SFTP?
                                0
                                Пока что нельзя, хотя в планах такая фича есть. Так а что мешает тот же PIL поставить локально? У него вроде никаких проблем с портабельностью нету.
                                  0
                                  Под Mac OS X с тем же PIL не всё так просто. Самое простое решение из найденных мной требует, в моем случае, как минимум установку Xcode (это надо качать 3.5-гигабайтный образ).

                                  А вообще, если бы эта фича была, я бы не устанавливал на хостах даже Django и 2-й Python. :)
                                    0
                                    Django иметь локально установленным всё равно придётся. Вытягивать по SFTP вообще все библиотеки, которые вы используете, не хочется из соображений performance. Скорее всего, напрямую с удалённой машиной будут работать только run/debug и генерация скелетов для бинарных библиотек (типа того же PIL).
                                      +1
                                      Мне пока сложно оценить, насколько это сложная или простая задача, но в чем проблема один раз выкачать из Ubuntu в Windows/Mac OS X все прикрученные к Python-у библиотеки, и проидексировать их для обеспечения функционала автодополнения?
                                        +2
                                        Если мы выкачаем библиотеки себе в тумбочку, они будут доступны только PyCharm'у. Если вы их поставите через pip install, это займёт ровно столько же времени, только доступны они будут всей вашей системе. Зачем же тогда заморачиваться с написанием функциональности по выкачиванию в тумбочку, если pip install уже один раз написали?
                                          –1
                                          Соль в том, что на моих хост-системах они и нужны только PyCharm-у. Веб-сервер — это веб-сервер, а машина для разработки — это машина для разработки. Какой смысл мне на ней поднимать недо-сервер и в итоге поддерживать среду в 2-х местах одновременно (по 2 раза обновлять библиотеки, например, если вышла новая версия).
                                            +1
                                            Мне, право же, удивительно слышать о том, что на машине для разработки не должно быть главного инструмента собственно разработки. :)
                                            Недо-сервер поднимать никакой не надо — инсталляция Django ничего такого не делает, она просто копирует django в site-packages.
                                            А с синхронизацией библиотек, насколько я понимаю, тот же pip вполне справляется. И в pycharm мы планируем вокруг этого всяческий UI сделать.
                                              +1
                                              Человек просто не осилил, как поставить все нужные библиотеки и хочет, чтобы вы за него решили его проблему. Потом он ещё попросит, чтобы pycharm его собачку выгуливал и мусор выносил.
                                                0
                                                Вижу, вы тонкий психолог, провидец и Григорий Петухов. Не останавливайтесь, расскажите о моих недостатках что-нибудь еще.
                                                  +3
                                                  Ну, ещё у вас на клавиатуре клавиша S западает :)
                                                –2
                                                Что удивительного в том, что я не хочу тащить в хост-систему Python, Django и еще кучу библиотек? Написанный код в любом случае запускается на выполнение исключительно на линуксовом сервере. Приведите хотя бы один аргумент в пользу того, что я поступаю категорически неправильно, не плодя сущности (с учетом вышесказанного).
                                                  +1
                                                  Если вы работаете над ровно одним проектом и ничего больше никогда в жизни не пишете и не собираетесь — наверное, это не категорически неправильно. Но вообще на Python можно написать огромную кучу всего полезного, в том числе и то, что захочется запускать локально на рабочей машине.

                                                  Вообще PyCharm рассчитывает и будет рассчитывать на то, что какой-то локально установленный Python у вас есть. Например, он используется для красивого форматирования epydoc'овских и sphinx комментов.
                                                    0
                                                    Понимаю, о чем вы. Вещи не для веба я пишу на 3-м питоне (и пока что только под Windows, на основной работе), так что в моем случае это для меня никак не отменяет моей хотелки. :)
                                                  0
                                                  А вообще мой оффтопик превратился уже в какой-то совсем оффтопик. :) Я задал вопрос, получил ответ и в целом всем доволен, спасибо. На этом можно закончить дискуссию.

                                                  Надеюсь, что когда-нибудь наберется критическая масса пользователей, которым нужно то же, что и мне, и вы эту фичу реализуете. PyCharm просто волшебная штука уже сейчас.
                                      +1
                                      эклипсу можно объеснить и он фри.
                                        0
                                        После PyCharm уже не хочется чтобы фри. Хочется, чтобы допилили те немногочиесленные вещи, которых мне в нем нехватает. :)

                                        Но за ссылку на мануал, как это делается в Эклипсе, был бы очень благодарен.
                                          0
                                          Где взять такую ссылку, настраивал чувак на работе. У них там у всех еклипсы с питоновым плагином. Пути нужно прописывать. Мне самому лично еклипс как и пишарм не по душе, пользуюсь текстмэйтом нативен и быстр.
                                      +1
                                      Очень классный редактор, но поясните: как мне сделать так, чтобы на ubuntu у меня редактор не кушал 80% процессора...dual core 2.0, 3gb ram…
                                        0
                                        Для начала прислать нам CPU snapshot:
                                        devnet.jetbrains.net/docs/DOC-1212
                                          0
                                          Хорошо, сделаю при первой же возможности!
                                        +3
                                        Молодцы, новый пайчарм очень нравится.

                                        Инспекции PEP8 видел в потенциальных фичах, не планируете?
                                        Кроме кофескрипта планируете поддержать другие препроцессоры кода (SASS, например) в новых версиях?
                                          +1
                                          Если совсем честно, мне кажется, что инспекция PEP8 — это примерно самая бесполезная из всех инспекций, которые можно было бы сделать в PyCharm. Но пользователи её почему-то хотят, так что наверное в конечном итоге сделаем.

                                          SASS уже давно поддерживается.
                                            0
                                            Почему бесполезная, простите? Ну и раз пользователи хотят и раз фича планировалась, то почему её всё ещё нет?
                                              0
                                              Бесполезная потому, что если код плохо читается или сильно отклоняется от принятого стандарта, то это отлично видно и без всякого инспекшна. А если читается нормально, но в одном месте один пробел «не по уставу», то никакой пользы от того, что этот пробел убрать, никому не настанет.

                                              Фича была в списке потенциальных фич на версию 2.0. Её всё ещё нет, потому что из этого списка мы выбрали другие фичи, более полезные.
                                                0
                                                Вы слишком категорично мыслите, мне кажется. Я думаю проверка по pep8 в первую очередь нужна начинающим пользователям, чтобы у них вошло в привычку писать корректный код. Только проверка нужна динамическая, чтобы по мере написания кода сразу были видны огрехи в оформлении.
                                                  0
                                                  С этим я спорить не буду, но как раз начинающие пользователи у нас эту фичу не просят.
                                                    +1
                                                    Она нужна опытным пользователям, которым приходится работать и с кодом начинающих :(
                                                      0
                                                      Как анализ кода по PEP-8 поможет вам в работе с кодом начинающего python-разработчика. Как выше было сказано, вы и так увидите, что он гумно.
                                                        +1
                                                        Он его сначала сам проверит.
                                          0
                                          Ммм, есть вопрос. Если есть лецензия купленная, то сколько будет стоит ее докупка (новая покупка?) для версии 2.0?
                                          Ведь если я правильно помню, то купленная лицензия позволяет бесплатно обновляться с минорнами релизами, а вот с мажорными обновления нужна новая лицензия.
                                            0
                                            Купленная лицензия включает в себя все апдейты в течение года с даты покупки, неважно, минорные или мажорные. Продление персональной лицензии, чтобы получать апдейты в течение следующего года, стоит $59.
                                              0
                                              Класнно, спасибо!
                                              Еще вопрос: PyCharm мне напомнит, что надо продлить лицензию?
                                                0
                                                Вам должна будет придти напоминалка по email.
                                            0
                                            При открытии проекта созданного в 1.5 пропали все настройки deployment
                                              0
                                              Спасибо за репорт, завтра попробуем воспроизвести.
                                                0
                                                Заодно пропали все добавленные Python Interpreters при тех же действиях
                                                  0
                                                  Вам при первом запуске должен был показаться диалог с предложением проимпортировать сеттинги. Вы согласились?
                                                    0
                                                    только при открытии проекта был диалог такого направления
                                                      0
                                                      Нет, это не то. Впрочем, ещё не поздно скопировать папочку .PyCharm10/config в .PyCharm20/config
                                                        0
                                                        О, теперь все хорошо, спасибо
                                              +1
                                              С MacOS хорошо всё было и раньше. А что с линукс? От swing ушли наконец? Или всё так же страшненько?
                                                0
                                                «Ушли от Swing» для нас означает переписать всё нафиг. Don't hold your breath, как говорят в таких случаях англоязычные товарищи.
                                                  0
                                                  Жаль. А я так надеялся, что будут нормальные виджеты и шрифты.
                                                    +1
                                                    Насчёт шрифтов у нас есть некоторая надежда: текст в редакторе можно рисовать прямо через нативное API, минуя Swing/Java2D. А с виджетами вроде как всё и так достаточно неплохо.
                                                      0
                                                      «можно рисовать» уже реализовано?
                                                      Рендеринг шрифтов — это один из основных минусов не дающих мне перепрыгнуть с Аптаны на ПуЧарм…
                                                        0
                                                        Нет, это пока только мысли.
                                                          0
                                                          Эх… Очень, очень, очень нужно, чтобы мысли преобразовались в результат и проблема с шрифтами ушла на совсем.
                                                          Надеюсь это реально возможно и будет в ближайших релизах, чтобы тогда я (и многие другие) понял зачем отдавать денежку за IDE (Аптана сейчас меня устраивает полностью, но я не против посмотреть по сторонам, найти возможно лучшее решение в плане IDE).

                                                          IMHO это круче и ценнее любых фич!
                                                      0
                                                      Я добавил в pycharm.sh такую строчку:

                                                      export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on"

                                                      стало гораздо лучше, я пока доволен.
                                                        +1
                                                        Да, знаю — можно так. А можно еще и это под-настроить и то подпилить… И, да, это чуть-чуть помогает…

                                                        Подобные советы подходят исключительно под бесплатные/опенсорс продукты, где не принято чего-то требовать и ожидать реально крутого результата, хотя последний иногда проскакивает, хоть и редко (я о том, что иногда встречаются не «альтернатива», а реальная замена платному софту).

                                                        Когда я покупаю продукт, который к слову стоит 99 долларов (немного, но и совсем не мало), то он (продукт) должен соответствовать моим ожиданиям. В случае с IDE, в которую я смотрю 99% рабочего времени, для меня очень важно как выглядят шрифты в первую очередь. Фичи, штуки, дополнительные тулзы — вторичны IMHO.
                                                    0
                                                    А вот то, что теперь показывает какому модулю принадлежит файл и полный путь до него — это гуд.
                                                      0
                                                      > От swing ушли наконец?

                                                      Вам в Eclipse.
                                                      0
                                                      За поддержку нескольких проектов в одном окне — спасибо =)
                                                      Ещё добавили бы поддержку слайсов ice и qml — цены бы не было =)

                                                      + график лога для меркуриала тоже не помешает.
                                                        0
                                                        А кто такие слайсы ice?
                                                        qml пока что нету в планах: работы много, а пользователей, которым это нужно, похоже, мало.
                                                        Лог для меркуриала мы сделать хотим, но пока что не дошли руки. Надеюсь, в одной из следующих версий получится сделать.
                                                          0
                                                          Грубо говоря — язык описания интерфейсов шустрого и простого аналога corba и soap, тикет уже давно написал =)
                                                          Но скорее всего оно даже менее востребовано, чем qml.
                                                          0
                                                          Что-то я не нашёл, как два проекта в одном окне открыть.
                                                            0
                                                            Когда открываете второй проект (через open directory, не reopen), там есть галочка «открыть в том же окне».
                                                              0
                                                              Так первый при этом закрылся! Ну или я не нашёл, как на него переключиться.
                                                                0
                                                                Попробуйте ещё раз и почитайте внимательно, что в этом диалоге написано.
                                                                  0
                                                                  А, не через reopen :) Извините.
                                                          0
                                                          Почему скромно молчите об увеличении производительности на связке Python 2.7 + Windows XP раз так в 50 в новом PyCharm'е? Или это локальная проблема у меня была?
                                                          Я вообще был в шоке, когда поставил новую версию на стадии первых EAP и он взлетел(а Pycharm 1.5 у меня только ползал).
                                                          Огромное спасибо, лучшее IDE. Своей быстротой и удобством в легкую окупает стоимость своей лицензии.
                                                            0
                                                            Я думаю, что проблема была локальная. Там есть некоторое количество фиксов про перформанс, в разных местах, но ничего, что могло бы дать 50x прирост.
                                                            0
                                                            Использую в работе на полную катушку. Отличная IDE.
                                                              0
                                                              Some skeletons failed to generate: 39 modules failed in 1 SDKs. Details… это нормально? Это про virtualenv, ругается на всякие _bsddb_d и прочие _d.
                                                                0
                                                                Какая операционка, и как вы ставили Python?
                                                                  0
                                                                  Debian unstable, питон 2.6 из репо.
                                                                    0
                                                                    Надо, видимо, исключать дебаг модули из генерации скелетов. Но в принципе это безвредная ошибка, всё должно работать.
                                                                      0
                                                                      Кроме дебаговых там ещё упомянуты cdbmodule и pymorphy_speedups._morph
                                                                0
                                                                Как раз созрел приобрести. Будет ли скидка в честь выпуска новой мажорной версии? :)
                                                                  0
                                                                  Хватит уже на этот год скидок. :)
                                                                    0
                                                                    Если вы open-source разработчик, вам могут дать её бесплатно.
                                                                    0
                                                                    деплоймент по sftp поломали (
                                                                      0
                                                                      Можно поподробнее?
                                                                        0
                                                                        создаю конфигурацию деплоймента по sftp
                                                                        используя ssh ключик
                                                                        перехожу на вкладку mappings
                                                                        заполняю всё
                                                                        нажимаю apply и всё
                                                                        pycharm перестает реагировать на нажатия кнопок (при этом тест соединения прошел успешно)
                                                                          0
                                                                          Создайте, пожалуйста, реквест в трекере youtrack.jetbrains.net/ и приаттачьте тред-дампы из папочки с логами (Help | Reveal Logs)
                                                                      0
                                                                      О, за Copy path спасибо, давно мечтал.
                                                                        +1
                                                                        А можно как то настроить PyCharm, что бы он учитывал, то что написано в файле .hgignore при использовании интеграции с Mercurial? А то раздражает повторно указывать то что надо игнорировать.

                                                                        Я так понимаю в PyCharm свой собственный список ignore-ов, но было бы неплохо если бы для этого всё таки использовался предусмотренный VCS механизм.
                                                                          0
                                                                          Вообще-то должен и безо всяких настроек учитывать. Если у вас не работает, напишите нам баг в трекер youtrack.jetbrains.net — будем разбираться.
                                                                          +1
                                                                          И ещё вопрос — планируете ли добавить UI для создания branch-ей для Mercurial (другие VCS не проверял, подозреваю, что и там нет такого функционала)
                                                                            +1
                                                                            Для большинства других есть. Для меркуриала тоже рано или поздно сделаем.
                                                                            +1
                                                                            скажите, а поддержку flask вы еще не планируете? хотябы, чтобы его дебажить можно было
                                                                              0
                                                                              Дебажить фласк в версии 2.0 уже можно.
                                                                                0
                                                                                круто. молодцы, спасибо.
                                                                              0
                                                                              >Поддержку CoffeeScript
                                                                              Счастье-то какое! Спасибо!
                                                                                0
                                                                                Часто выскакивает окошко «Updating index». Пропадает и тут же появляется, и так раз по 15. Тормозит и мешает работать.
                                                                                2011-12-23 16:47:31,221 [106374198]   INFO - j.util.indexing.FileBasedIndex - Rebuild requested for index Stubs 
                                                                                java.lang.Throwable
                                                                                	at com.intellij.util.indexing.FileBasedIndex.requestRebuild(FileBasedIndex.java:1356)

                                                                                PyCharm 2.0.1  Build #PY-111.107 
                                                                                Server VM 
                                                                                Vendor: Sun Microsystems Inc. 
                                                                                OS: Linux 
                                                                                  0
                                                                                  Запостите, пожалуйста, реквест в трекер youtrack.jetbrains.net/ с полным стектрейсом, а не только верхней строчкой.
                                                                                  0
                                                                                  Где же новогодние скидки? ;)
                                                                                    0
                                                                                    Скидки были в сентябре. На этот год хватит.
                                                                                      0
                                                                                      ну и ладно… сто, так сто :)

                                                                                      спасибо за отличный продукт!

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

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