[Python] ctypes importare libreria
Massimiliano Rosi
massimiliano.rosi a gmail.com
Lun 3 Lug 2017 16:29:43 CEST
Buongiorno a tutti, mi chiamo Massimiliano e mi sono iscritto da poco alla
lista.
Ho una domanda un pò particolare:
devo usare ctypes su python 3.6 per importare una .so su un dispositivo
embedded dove l'installazione di pthon è stata fatta compilandolo dai
sorgenti (architettura Arm), e in questo caso mi presenta un errore di
questo tipo:
Python 3.6.0 (default, Feb 20 2017, 16:41:12)
>>> import ctypes as c
>>> c.__version__
'1.1.0'
>>> libpack = c.cdll.LoadLibrary('/mnt/disk/libpack.so')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/mnt/nand/python3.6/lib/python3.6/ctypes/__init__.py", line 422, in
LoadLibrary
return self._dlltype(name)
File "/mnt/nand/python3.6/lib/python3.6/ctypes/__init__.py", line 344, in
__init__
self._handle = _dlopen(self._name, mode)
OSError: /mnt/disk/libpack.so: undefined symbol: inflateEnd
Mentre se sulla stessa architettura utilizzo l'altro interprete (2.7)
questo errore non si presenta, e anzi mi permette di utilizzare le funzioni
che sono esposti dalla libreria:
Python 2.7.5 (default, Jul 11 2016, 16:11:26)
>>> import ctypes as c
>>> c.__version__
'1.1.0'
>>> libpack=c.cdll.LoadLibrary('/mnt/nor/libpack.so')
>>> print (libpack.opensocket()
Al momento non ho accesso al codice sorgente della libreria c che sto
importando.
Ho fatto una ricerca online senza trovare dei risultati che mi mettessero
sulla strada corretta.
Qualcuno ha qualche idea del perché si manifesti questo errore solo su una
versione di python e non sull'altra visto che la versione di ctypes è la
stessa?
Grazie in anticipo a tutti.
Ciao.
M.
--
*"A parte l'uomo, tutti gli animali sanno che lo scopo principale della
vita è godersela"*
*Samuel Butler*
--
*rosi::LAB di Ro**si Massimiliano*
Mobile: +39 328.3065575
Fax: +39 178.2280639
E-mail: massimiliano.rosi a gmail.com
Pec: massimiliano.rosi a pec.it
Skype: papipano
LinkedIn: Massimiliano Rosi
----------------
"Avvertenze ai sensi del D.Lgs.196 del 30/06/2003
Le informazioni contenute in questo messaggio di posta elettronica
e/o files allegati, sono da considerarsi strettamente riservati.
Il loro utilizzo è consentito esclusivamente al destinatario del
messaggio, per le finalità indicate nello stesso.
Costituisce violazione ai principi dettati dal D.Lgs. 196/2003:
trattenere il messaggio stesso, divulgarlo anche in parte, distribuirlo
ad altri soggetti, copiarlo o utilizzarlo per finalità diverse.
Qualora riceveste questo messaggio senza esserne il destinatario
Vi preghiamo cortesemente di darcene notizia via e-mail
e di procedere alla distruzione del messaggio stesso,
cancellandolo dal Vostro sistema.
Grazie."
----------------
Nota: per proteggere il computer dai virus, le applicazioni di posta
elettronica impediscono l'invio o la ricezione di alcuni tipi di
allegati. Per determinare la modalità di gestione degli allegati,
controllare le impostazioni di protezione della posta elettronica.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20170703/58622126/attachment.html>
Maggiori informazioni sulla lista
Python