Question

J'ai installé Eclipse avec PyDev et adore pouvoir déboguer mes scripts / applications. Je viens de commencer à jouer avec Pylons et je me demandais s’il existe un moyen de démarrer le serveur de passerelle via Eclipse afin que je puisse déboguer mon application Web?

Était-ce utile?

La solution

Créer une nouvelle configuration de lancement (Python Run)

Onglet principal

Utilisez paster-script.py comme module principal (vous pouvez le trouver dans le sous-répertoire Scripts du répertoire d’installation de python)

N'oubliez pas d'ajouter le dossier racine de votre application dans la zone PYTHONPATH

Arguments Définissez également le répertoire de base sur le dossier racine.

Comme arguments du programme, utilisez "serve development.ini". (ou ce que vous utilisez pour déboguer votre application ")

Onglet commun

Vérifiez l’allocation de la console et lancez-le en arrière-plan

Autres conseils

Si vous préférez ne pas inclure votre installation Python dans l'espace de travail de votre projet pour obtenir une copie, vous pouvez créer un pilote pur-Python tel que:

#!/usr/bin/env python

from paste.script.serve import ServeCommand

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

... et lancez / déboguez-le dans Eclipse.

Remarque: ceci fonctionne sans l'option - reload , afin d'éviter les déploiements à chaud (c'est-à-dire que vous devrez recharger le serveur pour voir les modifications). Vous pouvez également ajouter l'option - reload pour obtenir des déploiements à chaud, mais Pydev ne s'arrêtera pas à vos points d'arrêt. Vous ne pouvez pas avoir votre gâteau et le manger aussi ...

ServeCommand("serve").run(["--reload", "development.ini"])

yanjost a le droit, je voulais juste ajouter que vous devez vous assurer que vous n'utilisez pas l'option --reload, cela empêchera le débogueur de s'attacher correctement et empêchera vos points d'arrêt de fonctionner. Juste une petite chose à laquelle j'ai couru.

J'ai pu obtenir - reload fonctionne en modifiant le "Répertoire de travail" de l'onglet "arguments" afin qu'il ne soit pas utilisé par défaut (c'est-à-dire, sélectionnez "Autre" - > Système de fichiers- > "Racine de votre application Pylons" où développement .ini est stocké.

Sur Linux, il s'agira probablement de / usr / bin / paster ou de / usr / local / bin / paster pour le script coller, et pour les arguments, j'ai: serve $ {workspace_loc} $ {chemin_projet} /development.ini

J'ai aussi eu ce travail (enfin). J'ai utilisé buildout au lieu de virtualenv pour installer des pylônes (instructions à l'adresse: http: //wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout ), les instructions ci-dessus devaient donc être légèrement modifiées dans la mesure du chemin.

-for "Module principal", j’utilise:

${workspace_loc:myeclipseprojectname/bin/paster}

(en ajoutant --reload, les points d'arrêt ne fonctionnaient pas pour moi et je l'ai testé plusieurs fois)

-for "Arguments de programme", j’utilise:

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

-for "Répertoire de travail, Autre:", j'utilise:

${workspace_loc:myeclipseprojectname/mypylonsprojectname}

- comme indiqué ci-dessus, dans "Onglet Commun", "Vérifier l'allocation de console et lancer en arrière-plan"

- et n'oubliez pas de définir un point d'arrêt avant d'essayer.

Cela ne répond pas vraiment à la question de savoir comment le faire dans éclipse. Mais j’ai débogué le serveur intermédiaire avec winpdb, ce qui est un très bon débogueur graphique en python (vous pouvez l’installer avec easy_install winpdb).

Il suffit de démarrer votre serveur, par exemple:

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

Et cliquez sur le bouton Exécuter.

Comme wayne l'a dit, il est nécessaire de ne pas utiliser l'option --reload. Au moins, je ne savais même pas comment attacher à une application Web réelle, lors de la sélection du processus auquel le débogueur devait entrer (la saisie de différents processus pouvait être contrôlée à l'aide des commandes de débogage "parent principal" et "enfant secondaire").

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top