Sto lavorando su Python 2.6/2.7 del codice che contiene i seguenti:Python: può __file__ essere None se l'importazione è riuscita?
try:
import gmpy
gmpy_imported=True
except ImportError:
gmpy_imported=False
if gmpy_imported and gmpy.__file__ is None:
gmpy_imported=False
posso capire la parte try-except
, che viene utilizzato per vedere se gmpy è stato installato sul sistema - e se no, a fare qualsiasi cosa. Tuttavia, non capisco perché sia necessario il controllo if gmpy.__file__ is None
; sembra ridondante.
Ci sono circostanze in cui l'importazione di un pacchetto sembra essere riuscita, ma il percorso del pacchetto sarebbe di fatto vuoto? Si tratta di un doppio controllo di sicurezza contro un'installazione danneggiata?
Se questo è Python 3.2+, il codice relativo all'importazione è in realtà leggibile abbastanza da consentirci di esaminarlo e vedere se una cosa del genere potrebbe mai accadere. Ma non credo che vorrei provarlo con il vecchio codice ... – abarnert
No, è Python 2. Avrei dovuto chiarirlo nella domanda ... – Boris