Quando si tenta di importare un modulo foo
mentre si è nella directory di origine, si ottiene un messaggio ImportError
piuttosto ingannevole: ImportError: No module named foo
.Catch python 'ImportError' se importato dalla directory di origine
Come posso catturare facilmente questo caso e restituire un messaggio più informativo, ad es. 'Per favore non caricare il modulo pippo dalla directory dei sorgenti'?
Avere la __init__.py
, vorrei iniziare con:
try:
from _foo import *
except ImportError:
## check whether in the source directory...
Quindi vorrei distinguere le diverse cause di un ImportError
(ad esempio perché un modulo denominato foo
non è installato affatto), e rilevare il caso in cui lo setup.py
si trova nella directory corrente. Quale sarebbe un modo elegante per farlo?
Grazie per la risposta rapida. Sono piuttosto alla ricerca di un modo per verificare se "ImportError" viene sollevato da "setup.py" che si trova nella directory corrente e lo distingue da altri casi. – Julian
Quindi usa la seconda opzione che ho menzionato. Sapete quale pacchetto si sta tentando di importare (come ultima risorsa, estrarlo dal messaggio "ImportError') e si può ottenere il nome della directory corrente. La condizione che stai cercando corrisponde al pacchetto e il nome della directory sono gli stessi, no? – isedev