J'ai un moteur de script intégré dans mon application C# qui utilise IronPython 2. Je crée l'environnement d'exécution Python et ajoute quelques classes à l'espace de noms global afin que le script puisse les importer en tant que modules.Arguments de script et Embedded IronPython
Cependant, une chose (assez basique) que je n'arrive pas à comprendre est de savoir comment envoyer des arguments de script. Je réalise que je pourrais juste créer une variable avec une liste d'arguments, mais il doit y avoir une bonne façon de le faire. De plus, le faire de la bonne façon en Python me permet de compiler les scripts et d'utiliser un générateur de documents automatisé appelé Sphinx. Donc, le but ultime est d'être en mesure d'utiliser:
import sys
sys.argv
Dans l'un de mes scripts et l'ont obtenir les arguments l'utilisateur spécifié (via l'application C#).
En ce moment, j'appelle le script en utilisant:
// set up iron python runtime engine
_engine = Python.CreateEngine();
_runtime = _engine.Runtime;
_scope = _engine.CreateScope();
// run script
_script = _engine.CreateScriptSourceFromFile(_path);
_script.Execute(_scope);
et j'ai essayé la recherche d'une API pour ajouter des arguments de script avec pas de chance. J'ai aussi essayé de les ajouter au chemin du script (_path dans l'exemple) sans aucune chance. J'ai essayé avec CreateScriptSourceFrom File et CreateScriptSourceFromSting (qui était un long shot de toute façon ...).
Est-ce que j'essaie de faire même possible? Sys.argv va finir par retourner les paramètres réels passés dans l'application d'hébergement.
Vous n'avez pas spécifié la version, mais cela pourrait nécessiter 2.6 - Je n'ai pas 2.0 à vérifier. –
J'utilise 2.0.1 et ça marche. Merci! J'aime ce site. – cgyDeveloper
Ah, je ne savais pas à ce sujet - bonne trouvaille! –