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?
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
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"])
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.
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.
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
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ą.
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").
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