[Python] problema di import con email generator

Giovanni Porcari giovanni.porcari a softwell.it
Dom 11 Nov 2012 09:31:19 CET


Il giorno 10/nov/2012, alle ore 12:52, Daniele Varrazzo <piro a develer.com> ha scritto:

> On 2012-11-10 09:35, Giovanni Porcari wrote:
>> Stamattina mi sono trovato un errore che non riesco a spiegarmi.
>> 
>> Python 2.7.2
>>>>> import email
>> 
>>>>> email.generator
>> Traceback (most recent call last):
>>  File "<stdin>", line 1, in <module>
>> AttributeError: 'module' object has no attribute 'generator'
>> 
>> 
>>>>> import email.generator as eg
>>>>> dir (eg)
>> ['DecodedGenerator', 'Generator', 'Header', 'NL', 'StringIO',
>> 'UNDERSCORE', '_FMT', '__all__', '__builtins__', '__doc__',
>> '__file__', '__name__', '__package__', '_fmt', '_is8bitstring',
>> '_make_boundary', '_width', 'fcre', 'random', 're', 'sys', 'time',
>> 'warnings']
>>>>> 
>> 
>> 
>> 
>> Si tratta di un baco (magari noto) o c' qualcosa che mi sfugge ?
> 
> Se generator non  importato esplicitamente da email/__init__.py  normale che "import email; email.generator" fallisca. Stai dicendo che in versioni precedenti funzionava e in 2.7.2 no? Questa potrebbe essere considerata una regressione. Ma se  stato sempre necessario importare email.generator, allora penso sia un modo di fare le cose normale. Un package non  tenuto a importare tutti i suoi sotto-moduli: potrebbe non essere desiderabile se per esempio qualcuno  lento da importare (tipo usa uuid) e non  necessario al resto del package.
> 


Non so se in versioni precedenti funzionasse o meno perch non avevo avuto occasione di usarlo. 

Avevo dato per scontato (ed  solo mia ignoranza) che fosse una regola che un package importasse
i sotto-moduli ma riflettendoci mi rendo conto che avevo preso come regola assoluta quella
che probabilmente  solo una frequente abitudine. In effetti avevo trovato uno snippet
probabilmente mal convertito dai nomi vecchi ai nomi nuovi e forse non testato e lo
avevo preso per oro colato ;)

Grazie

G


Maggiori informazioni sulla lista Python