2012-12-14 5 views
3

J'ai installé Aptana Studio 3 et Eclipse 4.2.1 (avec les extensions PyDev & PyDev) sur les systèmes Windows XP (SP3). J'ai été inefficace dans le chargement des assemblages externes .NET. Compte tenu de l'assembly myassembly.dll contenant un espace de noms myNameSpace, j'ai mis en place un nouveau projet avec l'interpréteur IronPython sélectionné. Dans le dossier src de mon projet, je fais un fichier Python contenant 3 déclarations « test.py »:Importation non résolue PyDev/IronPython

import clr 
clr.AddReferenceToFile('myassembly.dll') 
import myNameSpace 

Je reçois toujours une importation non résolue sur la 3ème déclaration à la fois Aptana Studio et Eclipse

  1. J'ai modifié la 2ème déclaration à utiliser clr.AddReferenceToFileAndPath('Fully qualified path and file name')

  2. J'ai aussi essayé d'ajouter le chemin vers une bibliothèque externe et de placer mon assemblage dans cette bibliothèque avec les mêmes résultats.

Les 3 instructions s'exécutent correctement à partir de la console IronPython. En outre, les importations du système .NET et d'autres modules fonctionnent correctement. Mais vraisemblablement, ces modules sont enregistrés dans le GAC.

Cela semble être unique à l'interpréteur IronPython et le final PYTHONPATH. J'ai des références de chemin d'accès au dossier src du projet et à un dossier source externe, tous deux contenant l'assembly. Qu'est-ce que j'oublie ici?

+0

Je pense que PyDev ne peut tout simplement pas faire cela, car il n'a vraiment aucun moyen d'analyser statiquement votre DLL! – moschlar

Répondre

0

Je ne l'ai pas testé, mais c'est généralement le cas pour les cartes intégrées forcées (voir la section des cartes intégrées forcées au http://pydev.org/manual_101_interpreter.html).

Pourtant, il ne fera pas le:

import clr 
clr.AddReferenceToFile('myassembly.dll') 

Donc, si that't vraiment nécessaire, vous pouvez modifier le fichier: eclipse \ plugins \ org.python.pydev_XXX \ pysrc \ pycompletionserver.py

et d'ajouter ce code (avant l'if sys.platform == "darwin") pour que l'importation fonctionne dans les intégrations forcées.

Questions connexes