2014-06-12 16 views
6

Perché il primo codice non funziona mentre il secondo funziona?Perché un'importazione non sempre importa pacchetti nidificati?

Primo codice:

import selenium 

driver = selenium.webdriver.Firefox() 

AttributeError: 'module' object has no attribute 'webdriver'

Secondo codice:

from selenium import webdriver 

driver = webdriver.Firefox() 
+1

Sono curioso anche di questo. Ho notato che iPython Notebook non rileva le cose quando si importa un modulo, anche se 'dal modulo import *' ... – Engineero

+1

Per quello che vale, '__init __. Py' del selenio è semplicemente' dal selenio di importazione del selenio'. Non importa qualcos'altro. – Michael

+1

@Michael ... quindi questo significa che si potrebbe voler scrivere 'da selenium.selenium import selenium': D –

risposta

12

pacchetti nidificati non vengono caricati automaticamente; non fino all'importazione selenium.webdriver è disponibile come attributo. L'importazione di soloselenium non è sufficiente.

Fate questo:

import selenium.webdriver 

driver = selenium.webdriver.Firefox() 

volte il pacchetto stesso sarà importare un pacchetto nidificato nel inizializzazione __init__.py package; os importa os.path, quindi os.path è immediatamente disponibile anche se si importa solo os.

Problemi correlati