[Python-es] Uso de libreria C++ en modulo con ironPython

Hernán Foffani hfoffani en gmail.com
Mie Oct 16 11:16:12 CEST 2013


>> A continuación creo un script en python en la que defino una clase que
>> herede de ClaseBase. El codigo que he puesto para importar la libreria es el
>> siguiente:
>> 
>> import clr
>> 
>> import sys
>> 
>> sys.path.Add('C:\Users\Inma\Documents\visual studio 2010\Projects\Libreria')
>> #Direccion de mi proyecto
>> 
>> clr.AddReference("Libreria")
>> 
>> Cuando intento ejecutar el script con el interprete de ironPython me aparece
>> el siguiente mensaje de error:
>> 
>> System.IO.IOException: Could not add reference to assembly Libreria
>> 
>> ¿Que es lo que esta pasando? ¿Por que no encuentra la dll?
> 
> Asumo que querías escribir 'sys.path.append' en lugar de 'sys.path.Add'
> 
> Cuida al poner la ruta, ya que el carácter '\' se interpreta como
> "escape". Si no quieres errores, o pones dos barras '\\' o, mejor, haz
> que sea una cadena raw:
> 
> sys.path.append(r'C:\Users\Inma\Documents\visual studio 2010\Projects\Libreria')   #Hay una 'r' al principio

En realidad en IronPython una vez importada la biblioteca clr sys.path
se comporta como una lista de Python y .NET así que debería ser lo mismo.

En vez de AddReference usa directamente AddReferenceToFileAndPath (no toques sys.path)
y sige la sugerencia de Chema de pasar el parámetro como cadena raw.
 
-Hernán.



Más información sobre la lista de distribución Python-es