вторник, 8 сентября 2009 г.

Интелисенс Eclipse в Django проектах

При написании кода на любом языке всегда важна скорость и отсутствие ошибок. Если вы гуру, печатаете 600 символов в минуту, "до символа" запоминаете названия всех API классов и методов с которым работаете и пишете без опечаток, то вам не нужна эта статья :).

Что позволяет писать быстрее? Посредством чего можно увидеть ошибки еще до момента запуска?


По моему мнению один из ключевых моментов в проектировании является IDE. Когда я только начал изучат Django, то сперва обучался по книге, а в качестве редактора использовал обычный notepad и Python GUI. Язык и фреймворк вызвал у меня большой интерес, сам по себе язык был очень гибким и выходил за рамки моего предыдущего 4-х летнего опыта на .NET. Хотя сам язык очень динамичный и что угодно можно присвоить куда угодно, но больше всего меня "убивало" отсутствие нормальной проверки синтаксиса и интелисенса.

При поиске удобного IDE для проектирования я остановил на Eclipse(Если кто то считает что есть что-то лучше для Django, то сообщите мне). Под него есть много разнообразных плагинов, а главное можно легко переключится на разработку на Java, Flex и т.д.

Для работы с python в Eclipse вам необходимо будет установить плагин PyDev. Вы будете приятно удивлены но 3 сентября Aptana выпустила новую версию PyDev 1.5.0 которая стала доступна с открытыми исходными кодами. Последнюю версию можно скачать с официального сайта продукта, версия на github будет закрыта. Пример установки.

Но спустя довольно таки короткое время данное расширение меня разочаровало :(. Оно лишь было необходимо для интеграции python и eclipse, позволяло запустить IDE в режиме работы и отладки, a самое главного то и небыло. В поисках "галактической справедливости" я наткнулся на Aptana Studio(Aptana разработчики PyDev). Не долго думая установил и сразу выросли крылья. При установке у вас появляется нормальный интелисенс, чего и не хватало так. Скачать ее можно вот тут, мануал по установке тут.

Правда и в ней не обошлось без "подводных камней"

Порт 8000

Первый раз запускаем с настройкой через Run -> Run configurations, выбрав Python Run добавляем параметры: "Main Module" на файл manage.py, а в параметр "Arguments" передаем "runserver --noreload", применяем и запускаем. Казалось бы все просто, но при запуске возникает ошибка "Error: [Errno 10013]". Оказывается Aptana Studio при установке резервирует порт 8000 под свои нужны. Вносим коррективы ("runserver 8080 --noreload") и наслаждаемся функционалом. С такими же настройками можно запустить и в Debug режиме.

Модули не на корневом уровне

Если вы в проекте выделяете подпапки для app, библиотек и т.д., то интелисенс по таким директориям будет работать только с указанием проекта, что не приемлемо, так как не позволит использовать данный код повторно в других проектах.
root project
|-libs
| |-mylib.py
|-app
| |-myapp
| | |-view.py

view.py
import mylib
В этом случае необходимо добавить эти папки в исходные папки проекта. Для этого зайдите в свойство проекта, пункт "PyDev - PYTHONPATH" и на вкладке "Source Folders" необходимо добавить необходимые папки через "Add source folder".

После всех этих манипуляция у вас появится нормальный интелисенс в проектах Django. Судя по себе скорость разработки вырастает где то на 15%-20%, а удовлетворенность на 100%!

3 комментария:

  1. Полезно, спасибо! Я Как раз в поиске IDE!

    ОтветитьУдалить
  2. спасибо! действительно нормальный такой интеллисенс)

    ОтветитьУдалить
  3. среди бесплатных решений - Aptana наверное лучшее, но, если не жалко 99 зеленых - советую PyCharm :)

    ОтветитьУдалить