擅长:python、mysql、java
<p>看起来你试图在不创建命名空间包的情况下创建一个命名空间包,这……是行不通的。在</p>
<p>要显式地将一个包指定为名称空间包,您需要使用<a href="http://docs.python.org/2/library/pkgutil.html#pkgutil.extend_path" rel="nofollow">^{<cd1>}</a>库(或{<cd2>}中更花哨的东西),类似于{<cd3>}顶部的内容:</p>
<pre><code>__path__ = pkgutil.extend_path(__path__, __name__)
</code></pre>
<p>如果您想要一个<a href="http://www.python.org/dev/peps/pep-0420/" rel="nofollow"><em>implicit</em> namespace package</a>,那么可以在python3.3及更高版本中实现……但前提是<code>bobzilla</code>是<em>空的</em>。隐式命名空间包不能包含<code>__init__.py</code>文件,并且除了它们的模块之外,永远不会有任何内容。(好吧,您可以创建一个隐式命名空间包,然后添加一个子包或外部模块,在创建后显式地向其中添加内容…但我不确定您为什么要这样做。)</p>