[Python] R: Strano problema con pkgutil.walk_packages

Germano Carella germano.carella a gmail.com
Gio 1 Maggio 2014 13:54:32 CEST


Ciao Riccardo,

In effetti, secondo la documentazione, non dovrebbe eseguire alcun che… e del resto ci mette un bel po’ prima di uscire dal ciclo.

Ho creato una funzione per gestire l’errore, chiedendo alla funzione di non fare nulla… ma walk_packages la ignora e dà lo stesso output che ho riportato precedentemente… Bah, strano davvero…

Grazie comunque.

Germano

 

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/0a35a4a3/attachment.html>


Maggiori informazioni sulla lista Python