[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