[Python] R: Strano problema con pkgutil.walk_packages

Germano Carella germano.carella a gmail.com
Gio 1 Maggio 2014 13:57:48 CEST


Contrordine, non è walk_packages che non va, ma è ldtp!

Infatti, se provo ad importare ldtp in una shell, fa la stessa cosa!

Probabilmente nell’__init__.py del pacchetto c’è del codice che si esegue a livello di main… e questo codice, produce questo errore… Io non conosco nemmeno il package ldtp, non ho idea di cosa faccia, ma di sicuro fa qualcosa, perché fa casino…

Ciao!

 

Da: python-bounces a lists.python.it [mailto:python-bounces a lists.python.it] Per conto di Riccardo Vianello
Inviato: giovedì 1 maggio 2014 13:02
A: Discussioni generali sul linguaggio Python
Oggetto: Re: [Python] Strano problema con pkgutil.walk_packages

 

Ciao Germano

 

2014-05-01 12:19 GMT+02:00 Germano Carella <germano.carella a gmail.com>:

Dunque, ho trovato una funzione che mi restituisce un oggetto contenente la lista di tutti i pacchetti presenti nel sistema.

La funzione è walk_packages e si trova nel modulo pkgutil.

Ok, eseguo la funzione e costruisco l’oggetto, che è un generator.

Per avere la lista di tutti i pacchetti devo eseguire una for su tutti gli elementi dell’oggetto.

Ebbene, la for si esegue, la lista viene costruita, ma a un certo punto mi stampa una serie di errori.

Li riporto tutti qui sotto, sperando che qualcuno mi possa suggerire qualcosa…

A mio modesto parere, è come se walk_packages eseguisse tutti i moduli del mondo…

 

la documentazione di pkgutil.walk_packages precisa "Note that this function must import all packages (not all modules!) on the given path [...]" e dall'output che riportavi sembra che l'import di ldtp comporti l'esecuzione di una porzione di codice che in questo contesto produce un errore.

sempre stando alla documentazione, sembra che dovresti poter passare alla walk_packages una funzione tramite il parametro opzionale 'onerror' in modo da stabilire come gestire le eccezioni (altrimenti il comportamento di walk_packages e` limitato ad ignorare ImportError). onerror dovrebbe essere una funzione che prende come argomento il nome del package responsabile dell'errore.

ciao,

riccardo

 

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140501/517241b9/attachment.html>


Maggiori informazioni sulla lista Python