2014-06-12 19 views
6

Neden ikinci kod çalışırken ilk kod çalışmıyor?Neden bir içe aktarma her zaman iç içe paketler içe aktarmıyor?

İlk kod:

import selenium 

driver = selenium.webdriver.Firefox() 

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

İkinci kod:

from selenium import webdriver 

driver = webdriver.Firefox() 
+1

Bunu da merak ediyorum. Modülü içe aktardığınızda bile, bir modül içe aktardığınızda iPython Defter uygulamasının bir şeyleri kaçırdığını fark ettim * ... – Engineero

+1

Değeri için selenyum '__init __. Py' sadece 'selenyum içe aktarma selenyumundan'. Başka bir şey ithal etmiyor. – Michael

+1

@Michael ... Yani bir "selenium.selenium ithalat selenyum" dan yazmak isteyebilirsiniz anlamına gelir: D –

cevap

12

İçiçe paketleri otomatik olarak yüklenmez; selenium.webdriver'u içe aktardığınız sürece bir özellik olarak kullanılabilir. 'u yalnızcaselenium içeri aktarmak yeterli değildir.

yapın:

import selenium.webdriver 

driver = selenium.webdriver.Firefox() 

Bazen paket kendisi __init__.py paket in başlatıcısı yuvalanmış paketini içe aktarır; os ithalatı , os.path, sadece os'u alsanız bile hemen kullanılabilir.