Ciao a tutti, grazie alle dritte di Gian Mario, ho risolto l'errore di importazione libreria con python 3.6.
> ho fatto una verifica con LD_DEBUG=files e lanciato il comando > > > PYTHON2: /mnt/nand/python2.7/bin/python -c "import ctypes as c; libpack = > c.CDLL('/mnt/nor/libpack.so', mode=c.RTLD_GLOBAL)" > PYTHON3: /mnt/nand/python3.6/bin/python -c "import ctypes as c; libpack = > c.CDLL('/mnt/nor/libpack.so', mode=c.RTLD_GLOBAL)" > > e le differenze sono su 3 librerie che in python3 non vengono caricate, > come da dettaglio seguente (output del comando con python 2.7): > > Python 2.7 Quelle che seguono sono le librerie caricate da python2.7 ma non da python3.6 > [...] > 24305: file=libssl.so.1.0.0 [0]; needed by > /mnt/nand/python2.7/bin/python [0] > 24305: file=libssl.so.1.0.0 [0]; generating link map > 24305: dynamic: 0x400f1980 base: 0x400a3000 size: 0x00051d6c > 24305: entry: 0x400b1138 phdr: 0x400a3034 phnum: 5 > 24305: > 24305: > 24305: file=libcrypto.so.1.0.0 [0]; needed by > /mnt/nand/python2.7/bin/python [0] > 24305: file=libcrypto.so.1.0.0 [0]; generating link map > 24305: dynamic: 0x40344378 base: 0x401f6000 size: 0x0015774c > 24305: entry: 0x40230b4c phdr: 0x401f6034 phnum: 5 > 24305: > 24305: > 24305: file=libz.so.1 [0]; needed by /mnt/nand/python2.7/bin/python > [0] > 24305: file=libz.so.1 [0]; generating link map > 24305: dynamic: 0x4036b4e0 base: 0x4034e000 size: 0x0001d6fc > 24305: entry: 0x4034f790 phdr: 0x4034e034 phnum: 5 > [...] > > e quindi con LD_DEBUG=symbols ho verificato che proprio una di queste > contiene il symbol inflateEnd che genera l'errore: > > python2 > [...] > 24749: symbol=syslog; lookup in file=/lib/libc.so.6 [0] > 24749: symbol=inflateEnd; lookup in file=/mnt/nand/python2.7/bin/python > [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libpthread.so.0 [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libdl.so.2 [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libutil.so.1 [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libssl.so.1.0.0 [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libcrypto.so.1.0.0 [0] > 24749: symbol=inflateEnd; lookup in file=/lib/libz.so.1 [0] > 24749: symbol=__gmon_start__; lookup in > file=/mnt/nand/python2.7/bin/python [0] > 24749: symbol=__gmon_start__; lookup in file=/lib/libpthread.so.0 > [0] > [...] > > python3 > [...] > 24638: symbol=syslog; lookup in file=/lib/libc.so.6 [0] > 24638: symbol=inflateEnd; lookup in file=/mnt/nand/python3.6/bin/python > [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libpthread.so.0 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libdl.so.2 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libutil.so.1 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/librt.so.1 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libm.so.6 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libgcc_s.so.1 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libc.so.6 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/ld-linux.so.3 [0] > 24638: symbol=inflateEnd; lookup in file=/mnt/nor/libpack.so [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libgcc_s.so.1 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/libc.so.6 [0] > 24638: symbol=inflateEnd; lookup in file=/lib/ld-linux.so.3 [0] > 24638: /mnt/nor/libpack.so: error: symbol lookup error: undefined > symbol: inflateEnd (fatal) > 24638: symbol=__dcgettext; lookup in file=/mnt/nand/python3.6/bin/python > [0] > 24638: symbol=__dcgettext; lookup in file=/lib/libpthread.so.0 [0] > [...] > > Poi facendo una ricerca online, ho capito che posso forzare il caricamento della libreria mancante: Python 3.6.0 (default, Feb 20 2017, 16:41:12) >>> import ctypes as c >>> c.CDLL('libz.so.1', mode=ctypes.RTLD_GLOBAL) >>> libpack=c.CDLL('/mnt/nor/libpack.so') così non viene più generato l'errore. In realtà ho risolto ma non ho capito perché alcune librerie sono caricate come prerequisito da python 2.7 ma non da python 3.6, vedrò di indagare e riporterò alla lista. Grazie a tutti. 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.r...@gmail.com Pec: massimiliano.r...@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.
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python