Dobra konfiguracja środowiska programistycznego dla Web2Py

Testuję Web2Py już od kilku dni i postanowiłem, że będzie to keeper. Ale jest jedna rzecz, która bardzo mnie martwi i to może być showstopper w końcu. Potrzebuję dobrego środowiska programistycznego i konfiguracji, której mogę zaufać i być produktywny. Pochodząc ze świata MS Visual Studio szukam czegoś z dobrymi funkcjami autocomplete / intellisense + do wersjonowania i wdrażania.

Zrobiłem kilka prób edycji kodu w Eclipse ale to wymaga dodatkowej konfiguracji, aby uruchomić z autouzupełnianie, a do debugowania Nie wiem, czy to możliwe. (Zauważyłem, że w Eclipse był szablon projektu Django, co jest nieco kuszące, muszę powiedzieć.)

Wing Ide ma instrukcję jak uruchomić web2py i jestem gotowy do testowania tego. Nie za darmo, ale bardzo tanie w porównaniu do wielu w świecie Windows.

Chcę również dobrą konfigurację wersjonowania (hg), a najlepiej półautomatyczną metodę FTP-deployment-method.

Co IDE robi Web2Py programiści używają, a jak wygląda Twoja konfiguracja?

Kompletny skrypt instalacyjny dla projektu w dobrym IDE byłby super! (Podobnie jak instalacja, jedno kliknięcie, aby uruchomić go w 100%).

Pycharm wygląda dobrze, być może można dodać obsługę web2py http://youtrack.jetbrains.net/issue/PY-1648

Wielkie dzięki!

Author: joeriks, 2010-11-02

7 answers

Skrypty

Po utworzeniu nowego projektu w web2py dodaję kilka skryptów do mojej głównej aplikacji katalog:

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

Jak stwierdzili inni, musisz zrobić kilka dodatkowych rzeczy , aby uzyskać autocomplete/intellisense dla web2py bez względu na to, jakiego IDE używasz.

Dla mnie NetBeans był dobrym kompromisem między robi-wszystko-jesli-tylko-mozesz-zrozumiec-jak (Eclipse/PyDev) i robi-podstawy-ale-kilka-dodatków (PyScripter).

NetBeans Setup (Właściwości Projektu):

  • Kategoria Python
    • Platforma Python: Python 2.x (domyślnie jest to Jython)
  • Kategoria Run
    • Główny Moduł: web2py.py
    • Argumenty Aplikacji: -i 127.0.0.1 -p 8000 -a mypassword

NetBeans Pros :

  • Tight Mercurial integracja
    • zaznacza, które linie zostały dodane, zmienione lub usunięte w pliku źródłowym podczas edycji
    • Selective rollback of individual changes you ' ve made since your last commit
    • jedna z najładniejszych wizualnych przeglądarek różnic, z których korzystałem
  • podpowiedzi w stylu Python PEP8 (w pełni konfigurowalny)
    • Nazwa " foo " nie jest poprawną nazwą klasy zgodnie z Twoim stylem kodu (CapitalizedWords)
    • Nazwa " Bar " nie jest poprawną nazwą funkcji zgodnie z Twoim style kodu (lowercase_with_underscores)
    • Auto-format hotkey (koryguje odstępy wokół operatorów, itp)
  • Nawigacja w pliku źródłowym
    • semantycznie indeksuje bieżący plik źródłowy
    • porządkuje alfabetycznie według typu (Klasa, metoda, atrybut itp.)
    • sprawia, że nawet ogromne arkusze stylów są łatwe do zarządzania

NetBeans Cons :

  • zintegrowany Debugger nie działa z web2py (ten naprawdę hurts)
  • długi czas uruchamiania (ale akceptowalnie zgryźliwy dla mnie raz uruchomiony)

Kontrola Wersji

Używam i Gorąco polecam Mercurial do kontroli źródła. Jak wspomniano wcześniej, NetBeans ma świetne wsparcie dla Mercurial, ale są pewne rzeczy, które wolałbym zrobić w TortoiseHg.

:

  • Shell overlay icons
  • Repozytorium Explorer
    • Zobacz historię reposów z graficznym wyświetlaczem rozgałęzianie / scalanie
    • one stop shop for Incoming, Outgoing, Push, Pull, Update, etc with button for commit tool
  • Commit tool
    • wybór Hunka: cherry pick zmienia się z pliku dla bardziej skupionych commitów
    • Add, Remove, Diff, Revert, Move, Remove, Forget

:

  • No easy way to drop directly into a command line
  • błąd, który regularnie zapobiega usuwaniu plików podczas commit (czeka na zwolnienie blokady; uruchomienie hg addremove z linii poleceń jest niezawodnym obejściem)

Wydawnictwo

[45]} używam kombinacji WinSCP( do przeglądania), PuTTY (do poleceń terminala) i TortoiseHg (do push/pull moich repos) do pracy z moim współdzielonym kontem hostingowym w Webfaction.

Pierwszą rzeczą, którą robię, jest skonfigurowanie szyfrowania klucza publicznego/prywatnego. Jeśli masz problemy z konfiguracją między Systemem Windows a Linuksem, spróbuj tych instrukcje od Andre Molnara . Krótka historia jest to, że musisz wygenerować swój klucz prywatny za pomocą ssh-keygen na Linuksie, skopiować go do komputera z systemem Windows za pomocą WinSCP, a następnie przekonwertować go do użytku z WinSCP i PuTTY.

Następnie dodaj następujące linie do globalnego mercurial.plik ini:

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

Nawet jeśli musisz połączyć się z wieloma serwerami, wystarczy skopiować klucz publiczny na każdy z różnych serwerów. Będziesz również chciał poinformować WinSCP i PuTTY, gdzie twój prywatny klucz znajduje się, ale są one dość łatwe do zrozumienia.

 16
Author: mwolfe02,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-27 14:38:15

Wypróbuj nowy interfejs admina web2py w trunku. Ma internetowy interfejs mercurial i interfejs Google deploy.

W web2py można edytować applications/admin/models/0.py and set

TEXT_EDITOR = 'amy'

I otrzymasz internetowy edytor Amy z autouzupełnianiem. Nie jest domyślna, ponieważ nie działa z niektórymi przeglądarkami i ponieważ autocompletion nie jest tak dobry jak eclipse. Może Ci się udać.

Możesz używać web2py z Eclipse, ale potrzebujesz mniejszego obejście problemu, aby poinformować Eclipse o środowisku web2py. jest to wyjaśnione tutaj .

Wiem, że inni użytkownicy używali innych IDE z web2py, na przykład WinIDE i pyCharm. Proponuję zapytać na liście mailingowej web2py, gdzie ludzie są bardzo pomocni.

 12
Author: mdipierro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-02 13:26:59

Jestem prawie pewien, że 'skrypt konfiguracji jednym kliknięciem', aby zrobić wszystko, czego szukasz, nie istnieje (w tej chwili). Ale nie zniechęcaj się - możesz osiągnąć przyjemne środowisko programistyczne dostosowane do Twoich potrzeb i masz wiele możliwości wyboru.

Chociaż rozwijam się w systemie Windows, podoba mi się konfiguracja, którą mam, ponieważ jest to bardziej "Unixy" sposób myślenia, w którym mam wiele narzędzi, z których każdy wykonuje określone zadanie. Po skonfigurowaniu workflow możesz być bardzo produktywny - chociaż zdaję sobie z tego sprawę początkowo może wydawać się nieco mylące, Pochodzące ze świata Visual Studio.

Poniżej przedstawiam, co ustaliłem. Jestem pewien, że inni będą mieli swoje własne zalecenia. Wybierz opcje, które lubisz najbardziej.

(poniżej powinny być hiperłącza do przydatnego oprogramowania, ale nie mam wystarczającej reputacji, aby umieścić więcej niż 1 link...)

Do tworzenia Na Windows lubię używać Pyscripter. Jest darmowy, szybki (w porównaniu do Aptana / Eclipse / Netbeans itp.) i ma kilka fajnych funkcje (dark theme, zintegrowana konsola Pythona i Eksplorator kodu, aby wymienić tylko kilka).

Aby uzyskać dopełnianie kodu / intellisense do pracy dla web2py, musisz dodać trochę kodu do plików modelu / kontrolera ze względu na sposób działania web2py. Istnieje kilka instrukcji w w tym temacie dyskusji w grupie web2py.

Web2py ma wbudowany wielki system zgłaszania błędów (zobacz Rozdział 3 książki web2py). Dla bardziej kompleksowego debugowania, pydb wydaje się być drogą do zrobienia. Just umieść poniższy kod jako punkt przerwania:

import pydb 
pydb.debugger()

I zabierze cię do debuggera.

Używam TortoiseHg do integracji Mercurial i działa cudownie. Połącz to z winscp i możesz łatwo wdrożyć.

 8
Author: keybits,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-02 12:36:22

Zastrzeżenia: pracuję w OS X, a większość mojego kodowania robię w BBEdit.

To powiedziawszy, używałem zarówno Wing jak i Komodo IDE do debugowania web2py i oba działały mi całkiem dobrze. Nie próbowałem NetBeans od jakiegoś czasu; kiedy zrobiłem obsługę Pythona wydawało się trochę szorstki wokół krawędzi. A ja nigdy nie miałem czasu ani cierpliwości, aby wymyślić Eclipse; jest w moim mentalnym szafie z Emacsem, bez wątpienia do Eclipse i / lub Emacsa.

(and I ' ll echo zalecenie mdipierro, aby wypróbować listę mailingową web2py; jest to naprawdę niezbędne-jeden z najmocniejszych punktów web2py.)

 5
Author: JLundell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-02 18:17:25

Rozważałeś użycie mniejszej ilości narzędzi? Zarówno Python, jak i web2py nie wymagają dużej ilości kodu,aby osiągnąć wiele. web2py dodaje tylko 10 lub 15 nowych wywołań funkcji (oprócz helperów i walidatorów HTML). Może okaże się, że Eclipse i inne IDE rzeczywiście się w drodze. Konfigurowanie nowych aplikacji w web2py jest proste poprzez system administracyjny. Ponieważ nowe rusztowanie aplikacji kopiuje aplikację powitalną, możesz dostosować nową konfigurację aplikacji, edytując aplikację powitalną. Z Mercurial (lub Git, Subversion lub Bazaar) możesz skonfigurować serwer na swoim komputerze lub na jednej z publicznych stron i albo push lub pull aktualizacje na serwerze produkcyjnym. Mówię, żeby to było proste.

 5
Author: pbreitenbach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-29 23:41:03

Używamy frameworka web2py dla wszystkich naszych potrzeb aplikacji webowych i to jest nasza konfiguracja:

OS-Ubuntu up-to-date
IDE-Aptana Studio 3.0 z pyDev
Kontrola wersji-git
Python 2.7 Przeglądarka dla fazy rozwojowej: Chrome

 1
Author: kommradHomer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-02 11:14:43

Uważam, że debugger Wing IDE jest bardzo przydatny. Jest to potężny debuger, a także może być skonfigurowany do zdalnego debugowania, co jest naprawdę ważne, gdy uruchamiasz web2py na zdalnej maszynie bez GUI (np. w Amazon Web Services).

 0
Author: Chris Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-24 10:57:24