Хорошая настройка среды разработки для Web2Py

Пробую 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

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


person joeriks    schedule 02.11.2010    source источник
comment
Вау! Спустя 11 часов после моего вопроса у меня уже есть четыре развернутых ответа. Я впечатлен.   -  person joeriks    schedule 02.11.2010
comment
Я временно покинул web2py на месяц, но теперь я вернулся - и я думаю, что оставлю Ubuntu-track и остановлюсь на сервере, который я знаю, IIS для действующего сайта. Также - я сделаю это простым с помощью меньшего количества инструментов, используя включенное управление версиями (если оно работает в win env). Я надеюсь, что это все еще действующие инструкции для хостинга IIS web2py web2py.com/AlterEgo/default / show / 207   -  person joeriks    schedule 01.12.2010
comment
(У меня произошел сбой моего сервера Ubuntu, не знаю, что случилось. И мне серьезно не хватает знаний о том, как безопасно размещать с Ubuntu, поэтому эта платформа действительно плохой выбор для меня.)   -  person joeriks    schedule 01.12.2010
comment
Поддержка web2py включена в план действий по PyCharm 3, далее.   -  person chb    schedule 20.06.2013


Ответы (7)


Скрипты

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

web2py \ applications \ myapp \ DebugWinpdb.bat:

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

web2py \ applications \ myapp \ DebugShell.bat:

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

web2py \ applications \ myapp \ Shell.bat:

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

IDE

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

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

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

  • Python Category
    • Python Platform: Python 2.x (default is Jython)
  • Run Category
    • Main Module: web2py.py
    • Аргументы приложения: -i 127.0.0.1 -p 8000 -a mypassword

NetBeans Pros:

  • Tight Mercurial integration
    • Highlights which lines have been added, changed, or deleted in your source file as you edit it
    • Выборочный откат отдельных изменений, внесенных вами с момента последней фиксации.
    • Одна из лучших визуальных программ просмотра различий, которые я когда-либо использовал
  • Python PEP8 style hints (fully customizable)
    • Name "foo" is not a valid class name according to your code style (CapitalizedWords)
    • Имя "Bar" не является допустимым именем функции в соответствии со стилем кода (нижний регистр_with_underscores)
    • Горячая клавиша автоформатирования (исправляет интервалы между операторами и т. Д.)
  • Navigation within source file
    • semantically indexes current source file
    • упорядочивается в алфавитном порядке по типу (класс, метод, атрибут и т. д.)
    • делает управляемыми даже огромные таблицы стилей

Минусы NetBeans:

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

Управление версиями

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

Плюсы TortoiseHg:

  • Значки наложения оболочки
  • Repository Explorer
    • view repos history with graphical display of branching/merging
    • единый магазин для входящих, исходящих, push, pull, обновления и т. д. с кнопкой для инструмента фиксации
  • Commit tool
    • Hunk Selection: cherry pick changes from within a file for more focused Commits
    • Добавить, удалить, дифференцировать, вернуть, переместить, удалить, забыть

Минусы TortoiseHg:

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

Издательский

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

Первое, что я делаю, это настраиваю шифрование с открытым / закрытым ключом. Если у вас возникают проблемы с установкой этой настройки между Windows и Linux, попробуйте эти инструкции от Андре Молнара. Вкратце: вам нужно сгенерировать свой закрытый ключ с помощью 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 знали, где находится ваш закрытый ключ, но это довольно легко выяснить.

person mwolfe02    schedule 02.11.2010
comment
Большое спасибо за ваш богатый ответ! Я посмотрю на NetBeans и winpdb. - person joeriks; 03.11.2010
comment
Итак, у вас есть Web2Py, работающий на общей учетной записи хостинга в Webfaction? - person joeriks; 20.12.2010
comment
да. У меня нет разрабатываемых приложений Web2py на Webfaction, но это просто потому, что я еще не продвинулся так далеко. Когда я его настраивал, на Webfaction был скрипт установки web2py (написанный Массимо или внесший в него большой вклад), который работал очень хорошо. - person mwolfe02; 20.12.2010

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

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

TEXT_EDITOR = 'amy'

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

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

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

person mdipierro    schedule 02.11.2010
comment
Ух ты, Эми действительно классная amyeditor.com/api/embed/test_python.html И мне очень нравится то, что вы собираетесь делать с новым интерфейсом, спасибо! Разве не было бы хорошей идеей разместить каждый раздел моделей / контроллеров / представлений и т. Д. На отдельной странице? В этом случае можно было бы легко открыть каждую из них на вкладке браузера и легко переключаться между ними (с соответствующим названием вкладки). - person joeriks; 02.11.2010
comment
Пока мы говорим, мы реорганизуем админку. Это произойдет быстро. Мы также изучаем yemacs. Мы могли бы воспользоваться вашим советом в группе web2py google. - person mdipierro; 03.11.2010
comment
Больше всего для обучения мне нужен intellisense / autocomplete, в веб-интерфейсе я думаю, что совместимость и стабильная среда всегда должны быть приоритетом №1. - person joeriks; 01.12.2010

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

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

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

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

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

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

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

import pydb 
pydb.debugger()

и вы перейдете к отладчику.

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

person keybits    schedule 02.11.2010
comment
Вы размещаете свои сайты web2py на Windows + IIS? Это web2py.com/AlterEgo/default/show/207 способ идти? - person joeriks; 01.12.2010
comment
Извините, я размещаю на Debian VPS с Apache и mod_wsgi - очень легко настроить с помощью этого web2py.com/book/default/chapter/ - person keybits; 02.12.2010
comment
Хорошо, спасибо, но даже если это может быть легко настроить - для меня я недостаточно знаком с Apache и * nix, чтобы запустить веб-сайт, который должен быть на них надежным. Простая ошибка, и я теряюсь в поисках ответов часами. - person joeriks; 19.12.2010

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

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

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

person JLundell    schedule 02.11.2010

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

person pbreitenbach    schedule 29.11.2010
comment
всего 10 или 15 вызовов новых функций? Обдумайте это. - person Pacerier; 29.05.2019

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

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

person kommradHomer    schedule 02.04.2012

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

person Chris Johnson    schedule 24.11.2012