Хорошая настройка среды разработки для Web2Py - PullRequest
27 голосов
/ 02 ноября 2010

Уже пару дней пробую Web2Py, и я решил, что он будет хранителем.Но есть одна вещь, которая волнует меня очень сильно, и в конце концов это может быть демонстрация.Мне нужна хорошая среда разработки и настройки, которой я могу доверять и работать продуктивно.Исходя из мира MS Visual Studio, я ищу что-то с хорошими функциями автозаполнения / intellisense + для управления версиями и развертывания.

Я попытался отредактировать свой код в Eclipse, но для его запуска с автозаполнением требуется дополнительная настройкаи для отладки я не знаю, возможно ли это.(Заметил, что в Eclipse был шаблон проекта Django, что немного заманчиво, я должен сказать.)

В Wing Ide есть инструкция по настройке и запуску web2py, и я готов ее протестировать.Не бесплатный, но очень дешевый по сравнению с большим количеством в мире Windows.

Я также хочу хорошую настройку управления версиями (hg) и предпочтительно полуавтоматический метод FTP-развертывания.

ЧтоIDE используют разработчики Web2Py, и как выглядят ваши настройки?

Полный сценарий установки для проекта в хорошей IDE был бы потрясающим!(Как и при установке, одним щелчком мыши запускается 100%).

Pycharm выглядит хорошо, возможно, можно добавить поддержку web2py http://youtrack.jetbrains.net/issue/PY-1648

Большое спасибо!

Ответы [ 7 ]

16 голосов
/ 02 ноября 2010

Сценарии

Как только я создаю новый проект в web2py, я добавляю несколько сценариев в основную папку приложения:

web2py \ приложения \ MyApp \ DebugWinpdb.bat

C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -i 127.0.0.1 -p8000 -mypassword

web2py \ приложения \ MyApp \ DebugShell.bat

C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -S myapp -M

web2py \ приложения \ MyApp \ Shell.bat

python ..\..\web2py.py -S myapp -M

IDE

Как уже говорили другие, вам нужно сделать дополнительные вещи , чтобы получить автозаполнение / intellisense для web2py независимо от того, какую IDE вы используете.

Для меня NetBeans был хорошим компромиссом между делом «все, если только ты умеешь понять» (Eclipse / PyDev) и «делами - основами, но немногими» (PyScripter).

Настройка NetBeans (свойства проекта) :

  • Категория Python
    • Платформа Python: Python 2.x (по умолчанию Jython)
  • Запустить категорию
    • Основной модуль: web2py.py
    • Аргументы приложения: -i 127.0.0.1 -p 8000 -a mypassword

Преимущества NetBeans :

  • Тесная интеграция Mercurial
    • Подсвечивает, какие строки были добавлены, изменены или удалены в исходном файле при редактировании
    • Выборочный откат отдельных изменений, которые вы внесли с момента последнего коммита
    • Один из самых хороших средств просмотра визуальных различий, которые я использовал
  • Подсказки в стиле Python PEP8 (полностью настраиваемые)
    • Имя "foo" не является допустимым именем класса в соответствии с вашим стилем кода (CapitalizedWords)
    • Имя «Bar» не является допустимым именем функции в соответствии с вашим стилем кода (lowercase_with_underscores)
    • Горячая клавиша автоматического форматирования (исправляет интервал между операторами и т. Д.)
  • Навигация внутри исходного файла
    • семантически индексирует текущий исходный файл
    • организует в алфавитном порядке по типу (класс, метод, атрибут и т. Д.)
    • позволяет управлять даже огромными таблицами стилей

Минусы NetBeans :

  • Встроенный отладчик не работает с web2py (что очень больно)
  • Длительное время запуска (но приемлемо для меня сразу после запуска)

Контроль версий

Я использую и очень рекомендую Mercurial для контроля версий. Как упоминалось ранее, NetBeans имеет отличную поддержку Mercurial, но есть некоторые вещи, которые я бы предпочел сделать в TortoiseHg.

Плюсы TortoiseHg :

  • Значки наложения оболочки
  • Проводник репозитория
    • просмотр истории репо с графическим отображением ветвления / слияния
    • универсальный магазин для входящих, исходящих, push, Pull, Update и т. Д. С кнопкой для инструмента Commit
  • Инструмент фиксации
    • Hunk Selection: вишня выбирает изменения из файла для более сфокусированных коммитов
    • Добавить, удалить, изменить, вернуть, переместить, удалить, забыть

TortoiseHg Минусы :

  • Нет простого способа зайти прямо в командную строку
  • Ошибка, которая регулярно препятствует удалению файлов во время фиксации (ожидание освобождения блокировки undef; запуск hg addremove из командной строки - надежный обходной путь)

Издательство

Я использую комбинацию WinSCP (для просмотра), PuTTY (для терминальных команд) и TortoiseHg (для push / pull моих репозиториев) для работы с моей учетной записью общего хостинга в Webfaction.

Первым делом я настраиваю шифрование с открытым / закрытым ключом. Если у вас возникли проблемы с настройкой между Windows и Linux, попробуйте эти инструкции от Andre Molnar . Краткий рассказ: вам нужно сгенерировать свой закрытый ключ с помощью ssh-keygen в Linux, скопировать его на свой компьютер Windows с помощью WinSCP, а затем преобразовать его для использования с WinSCP и PuTTY.

Затем добавьте следующие строки в ваш глобальный файл mercurial.ini:

[ui]
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "c:\path\to\your\privatekey.ppk"

Даже если вам нужно подключиться к нескольким серверам, вам нужно только скопировать ваш открытый ключ на каждый из разных серверов. Вам также нужно сообщить WinSCP и PuTTY, где находится ваш закрытый ключ, но это довольно легко выяснить.

12 голосов
/ 02 ноября 2010

Попробуйте новый интерфейс web2py admin в транке. Он имеет веб-интерфейс Mercurial и интерфейс развертывания Google.

В web2py вы можете редактировать приложения / admin / models / 0.py и установить

TEXT_EDITOR = 'amy'

И вы получите веб-редактор Amy с автозаполнением. Это не по умолчанию, потому что он не работает с некоторыми браузерами и потому, что автозаполнение не так хорошо, как затмение. Это может работать для вас.

Вы можете использовать web2py с Eclipse, но вам потребуется небольшой обходной путь, чтобы Eclipse узнал о среде web2py. Это объясняется здесь .

Я знаю, что другие пользователи использовали другие IDE с web2py, например WinIDE и pyCharm. Я предлагаю вам спросить в списке рассылки web2py, где люди очень полезны.

8 голосов
/ 02 ноября 2010

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

Несмотря на то, что я разрабатываю для Windows, мне нравятся настройки, которые у меня есть, так как это скорее «Unixy» способ мышления, при котором у меня есть несколько инструментов, каждый из которых выполняет определенную задачу. Как только вы получите настройку рабочего процесса, вы можете быть очень продуктивными - хотя я понимаю, что это может показаться немного запутанным, если исходить из мира Visual Studio.

Ниже я обрисую то, на чем остановился. Я уверен, что у других будут свои рекомендации. Выберите наиболее понравившиеся варианты.

(Ниже должны быть ссылки на полезное программное обеспечение, но у меня недостаточно репутации, чтобы добавить более 1 ссылки ...)

Для разработки под Windows мне нравится использовать Pyscripter. Он бесплатный, быстрый (по сравнению с Aptana / Eclipse / Netbeans и т. Д.) И имеет несколько приятных функций (темная тема, встроенная консоль python и проводник кода и многие другие).

Для того, чтобы завершение кода / intellisense работало для web2py, вам необходимо добавить некоторый код в файлы модели / контроллера из-за способа работы web2py. В этой теме обсуждения для группы web2py есть некоторые инструкции.

В web2py встроена отличная система регистрации ошибок (см. Главу 3 книги web2py). Для более всесторонней отладки, похоже, pydb - путь. Просто поместите код ниже в качестве точки останова:

import pydb 
pydb.debugger()

и он приведет вас к отладчику.

Я использую TortoiseHg для интеграции Mercurial, и он прекрасно работает. Объедините это с winscp, и вы сможете легко развернуть.

5 голосов
/ 30 ноября 2010

Рассматривали ли вы использовать меньше инструментов?И Python, и web2py не требуют большого количества кода, чтобы добиться многого.web2py добавляет только 10 или 15 новых вызовов функций (кроме HTML-помощников и валидаторов).Вы можете обнаружить, что Eclipse и другие IDE действительно мешают.Настроить новые приложения в web2py просто через систему администратора.Поскольку новые леса приложений копируют приложение приветствия, вы можете изменить настройки нового приложения, отредактировав приложение приветствия.С помощью Mercurial (или Git, Subversion или Bazaar) вы можете настроить сервер на своем компьютере или на одном из общедоступных сайтов и загружать или извлекать обновления на рабочий сервер.Проще говоря, говорю я.

5 голосов
/ 02 ноября 2010

Предостережения: я работаю в OS X и делаю большую часть своего кодирования в BBEdit.

Тем не менее, я использовал и Wing, и Komodo IDE для отладки web2py, и они оба работали довольно хорошо для меня. Я давно не пробовал NetBeans; когда я делал поддержку Python, он казался немного грубым по краям. И у меня никогда не было ни времени, ни терпения, чтобы ускориться с Eclipse; он хранится в моем ментальном картотеке с Emacs, без сомнения, несправедливо по отношению к Eclipse и / или Emacs.

(И я повторю рекомендацию mdipierro, чтобы попробовать список рассылки web2py; это действительно необходимо - одна из самых сильных сторон web2py.)

1 голос
/ 02 апреля 2012

мы используем фреймворк web2py для всех нужд нашего веб-приложения, и это наша установка:

ОС - Ubuntu в актуальном состоянии
IDE - Aptana Studio 3.0 с pyDev
Контроль версий - git
Python 2.7 Браузер для этапа разработки: Chrome

0 голосов
/ 24 ноября 2012

Я считаю, что отладчик Wing IDE очень полезен.Это мощный отладчик по всем направлениям, и он также может быть настроен для выполнения удаленной отладки, что очень важно, когда вы запускаете web2py на удаленном компьютере без графического интерфейса пользователя (например, в Amazon Web Services).

...