2010-10-25 2 views
0

J'essaie d'appeler un script python à partir d'un exécutable Windows, en fin de compte le but est un service Windows dans lequel je peux brancher divers scripts, par exemple pour retirer des pièces jointes (puisque python a un bon support imap). Bien sûr, je suis un newb total donc je suis désemparé :) Je reçois une exception non gérée:IronPython 2.7A1 exécuter à partir du fichier source throws méthode non implémentée erreur

System.NotImplementedException: La méthode ou l'opération n'est pas implémentée. à Microsoft.Scripting.PlatformAdaptationLayer.OpenInputFileStream (chemin de la chaîne)

et gobs plus mais cela semble être le problème clé. Clairement ceci doit avoir à faire avec la lecture du code d'un fichier parce que le simple changement ci-dessous le fait fonctionner. Je me demande si c'est un bug dans IP 2.7A1 mais je pense que j'aurais trouvé que dans mon j'espère que la recherche exhaustive sur le Web. D'accord, voici le code:

var engine = Python.CreateEngine(); 
var script = engine.CreateScriptSourceFromFile("PyTest.py"); 
ScriptScope scope = engine.CreateScope(); 
script.Execute(scope); 

et le code PyTest.py est très simple, un exemple à partir du Web:

import sys 

#def Main(): 

def adder(arg1, arg2): 
     return arg1 + arg2 

class MyClass(object): 
     def __init__(self, value): 
      self.value = value 

si j'appelle ce script en attribuant à une valeur de chaîne et en utilisant la méthode CreateScriptSourceFromString fonctionne correctement. J'ai vérifié que le code peut voir le fichier PyTest.py en faisant un fichier.exists (fileName) et il voit le fichier. J'ai aussi essayé de donner explicitement le chemin en vain.

Merci pour vos suggestions!

Répondre

0

Etes-vous sûr d'utiliser une version de IronPython pour le framework .NET? Les versions de Silverlight (qui seront également chargées sur le framework de bureau) ont des fonctionnalités de système de fichiers désactivées. Je peux le faire à partir d'une console .exe très bien, alors s'il vous plaît fournir plus d'informations.

+0

Vous pouvez être sur, j'ai dû obtenir les DLL du dossier Silverlight qui m'a un peu buggé, cela l'expliquerait. J'ai la version 2.71A de http://ironpython.codeplex.com/releases/view/42434 Dans les options de l'installateur je vois des bacs sous Silverlight mais pas sous des outils pour VS. –

+0

Dans Alpha 1, nous avons seulement installé les binaires dans le GAC. Vous pouvez trouver ceux ci-dessous% WINDIR% \ Microsoft.NET \ assembly. Dans 2.7B1 nous incluons maintenant les fichiers dans le répertoire d'installation ainsi il est plus pratique de les trouver. –

+0

OUI !!!! merci beaucoup, c'était le problème, s'est également débarrassé de mon avertissement mystérieux. Excellent! –

Questions connexes