Peut-on être en quelque sorte surmonté? Un processus enfant peut-il créer un sous-processus?
Le problème est que j'ai une application prête qui doit appeler un script Python. Ce script sur ses propres fonctionne parfaitement, mais il doit appeler des scripts shell existants. P>
schématiquement le problème est dans le code suivant: p>
3 Réponses :
Il ne devrait pas y avoir rien d'empêcher d'utiliser Subprocess en enfantine.py et parent.py p>
Je suis capable de le courir parfaitement bien. :) p>
problème de débogage fort>: p>
Vous utilisez
python code> et
/ usr / sfw / bin / python code>. p> blockQuote>
- est le python nu pointant vers le même python? Li>
- Pouvez-vous vérifier en tapant 'quel python'? li> ol>
Je suis sûr que si vous avez fait ce qui suit, cela fonctionnera pour vous. p>
xxx pré> Vous pouvez modifier votre code parent.py? code> à p>
xxx pré> blockQuote>
Je suppose que le problème est le chemin de recherche de module, par opposition au code lui-même. Alors oui, répondez à venir. :)
Oui, j'utilise le même python que python / usr / sfw / bin / python
le même échec avec / usr / sfw / bin / python parent.py
Non, Python Parent.py SubProC App Call SubProC .. Traceback (dernier appel en dernier): fichier "/usr/apps/openet/bmssystest/relauto/varioussw/child.py", ligne 2, dans? Import Subprocess Importerror: Aucun module nommé sous-processus
Utilisation de parent.py: p> enfant.py p> hors programme: p> Subprocess.Call CODE> n'est pas la bonne façon de le faire. À mon avis,
subprocess.popen code> serait mieux.
python parent.py
['arg1', 'arg2']
.
..
chid.py
child.py
.child.py.swp
parent.py
.ropeproject
Vous pouvez essayer d'ajouter votre répertoire Python à Sys.Path in chield.py
import sys sys.path.append('../')
Ceci est sur Solaris 2.6.2 - Avez-vous essayé ces exemples sur une autre plate-forme?
Désolé - Solaris 10, Python 2.6.2 a été construit à partir de la source
Cela devrait fonctionner. Voir ma réponse. J'ai une hunch que vous utilisez deux exécutables de Python différents.
Juste avant la ligne code> Import Import Import Code> Line in Child.py, essayez d'impression
sys.path code>. Comparer entre le cas où cela fonctionne et le cas ne le fait pas.