擅长:python、mysql、java
<p>这是一个Python bug。将空字符串作为<code>fromlist</code>的元素传递是非法的,应该引发异常。在</p>
<p>不需要在<code>fromlist</code>中包含<code>""</code>;这是隐式的,总是加载模块本身。实际发生的是<code>module.submodule</code>字符串使用空字符串,导致模块名<code>testpkg.</code>,后面有一个句点。它被逐字导入,由于它的名称与<code>testpkg</code>不同,所以它作为一个单独的模块导入。在</p>
<p>试试这个:</p>
<pre><code>pkg = __import__("testpkg", fromlist=[''])
import sys
print sys["testpkg"]
print sys["testpkg."]
</code></pre>
<p>。。。你会看到复制的模块。在</p>
<p>如果还没有的话,可能应该有人为此申请一张罚单;我现在太累了,不能自己去做。在</p>