'from X import a' 有效,但 'import X; X.a' 无效

'from X import a' works but 'import X; X.a' doesn't

在将 this snippet 集成到脚本中时,我想从 :

import pywikibot
from pywikibot import pagegenerators

site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()

sparql = "SELECT ?item WHERE { ?item rdfs:label 'Google'@en }"
entities = pagegenerators.WikidataSPARQLPageGenerator(sparql, site=repo)

至:

import pywikibot

site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()

sparql = "SELECT ?item WHERE { ?item rdfs:label 'Google'@en }"
entities = pywikibot.pagegenerators.WikidataSPARQLPageGenerator(sparql, site=repo)

(即试图将导入合并为一个)但它给了我一个错误:

AttributeError: module 'pywikibot' has no attribute 'pagegenerators'

(我的桌面和云端的 Jupyter notebook 上出现同样的错误)

我错过了什么?

Pagegenerators 不是一个属性,它是 pywikibot 中的一个模块:https://m.mediawiki.org/wiki/Manual:Pywikibot/pagegenerators.py

子模块不会自动导入此特定模块,这就是为什么您必须编写 from pywikibot import pagegenerators.