擅长:python、mysql、java
<p>如果我正确地理解了这种情况,那么您正在编写一个模块<code>wrapmod</code>,用于转换现有包的部分<code>mod</code>。您要转换的特定部分是子模块<code>mod.settings</code>。您已经导入了<code>settings</code>模块并对其进行了更改,但是即使它作为<code>wrapmod.settings</code>可用,也不能在<code>from ... import ...</code>语句中使用该模块名称。你知道吗</p>
<p>我认为最好的解决方法是将修改后的模块插入到<code>sys.modules</code>中的新虚线名称下。这使得Python接受该名称为有效的,即使<code>wrapmod</code>不是真正的包。你知道吗</p>
<p>所以<code>wrapmod</code>看起来像:</p>
<pre><code>import sys
from mod import settings
# modify settings here
sys.modules['wrapmod.settings'] = settings # add this line!
</code></pre>