Debugowanie aplikacji przez Eclipse

Mam konfigurację Eclipse z PyDev i uwielbiam debugować moje Skrypty/aplikacje. Właśnie zacząłem bawić się z pylonami i zastanawiałem się, czy jest sposób, aby uruchomić serwer paster poprzez Eclipse, aby móc debugować moją webapp?

Author: Max Stewart, 2008-09-29

7 answers

Utwórz nową konfigurację uruchamiania (uruchamianie Pythona)

Main tab

Użycie paster-script.py jako główny moduł (można go znaleźć w podkatalogu Scripts w katalogu instalacyjnym Pythona)

Nie zapomnij dodać folderu głównego aplikacji w strefie PYTHONPATH

Argumenty Ustaw również katalog podstawowy na folder główny.

Jako argumenty programu użyj " serve development.ini "(lub cokolwiek używasz do debugowania swojego app")

Common Tab

Sprawdź przydziel konsolę i uruchom w tle

 10
Author: yanjost,
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
2008-09-29 07:03:33

Jeśli wolisz nie umieszczać instalacji Pythona w przestrzeni roboczej twojego projektu, aby uzyskać paster, możesz utworzyć sterownik pure-Python, taki jak:

#!/usr/bin/env python

from paste.script.serve import ServeCommand

ServeCommand("serve").run(["development.ini"])

...i uruchom / Debuguj to w Eclipse.

Uwaga: To działa bez opcji --reload, więc nie masz gorących wdrożeń(tzn. musisz przeładować serwer, aby zobaczyć zmiany). Możesz też dodać opcję --reload, aby uzyskać gorące wdrożenia, ale wtedy Pydev nie zatrzyma się na Twoich punktach przerwania. Nie możesz zjeść swojego ciasta i go zjeść. też...

ServeCommand("serve").run(["--reload", "development.ini"])
 6
Author: jimmyorr,
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
2011-01-06 18:47:21

Yanjost ma rację, chciałem tylko dodać, że musisz upewnić się, że nie używasz opcji --reload, zapobiegnie to poprawnemu załączaniu się debuggera i spowoduje, że twoje punkty przerwania nie będą działać. To tylko mała rzecz, do której wpadłem.

 2
Author: Wayne,
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
2009-08-20 13:17:28

Udało mi się uruchomić --reload, zmieniając 'Working directory' w zakładce arguments, aby nie używać domyślnego (tzn. wybrać 'Other'->File System->'Root of your Pylons' app gdzie rozwijany jest.ini jest przechowywany.

 2
Author: David M,
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-09-29 00:01:12

Na Linuksie prawdopodobnie będzie to/usr/bin /paster lub/usr/local/bin/paster dla skryptu wklejania, a dla argumentów mam: serve ${workspace_loc}${project_path} / development.ini

 1
Author: Damian,
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-06-02 13:36:44

Również to działa (w końcu). Do instalacji pylonów użyłem buildouta zamiast virtualenv (instrukcja w: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons + with + buildout), więc powyższa instrukcja musiała zostać nieco zmieniona w miarę przechodzenia ścieżek.

-dla "modułu głównego" używam:

${workspace_loc:myeclipseprojectname/bin/paster}

(dodanie --reload sprawiło, że punkty przerwania nie działały dla mnie i testowałem to kilka razy)

- dla "argumentów programu" używam:

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini}

- dla " Working Directory, Other:", używam:

${workspace_loc:myeclipseprojectname/mypylonsprojectname}

- Jak wspomniano powyżej, w "Common Tab", "Sprawdź przydziel konsolę i uruchom w tle"

- i pamiętaj, aby ustawić punkt przerwania przed próbą.

 1
Author: heehoo,
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-14 00:38:19

To nie odpowiada na pytanie, Jak to zrobić w eclipse. Ale debugowałem serwer paster za pomocą winpdb, który jest całkiem ładnym graficznym debuggerem Pythona (można go zainstalować za pomocą easy_install winpdb).

Wystarczy uruchomić serwer np.:

winpdb /usr/local/bin/paster serve development.ini

I kliknij przycisk Uruchom.

Jak powiedział wayne, konieczne jest , a nie użycie opcji -- reload. Przynajmniej nie byłem w stanie znaleźć, jak dołączyć do rzeczywistej webapp nawet, przy wyborze do którego rozwidlony debugger procesu should enter (Wprowadzanie różnych procesów może być sterowane poleceniami debuggera "Fork parent" i "Fork child").

 0
Author: Mikael Lepistö,
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
2011-04-29 08:34:12