擅长:python、mysql、java
<p>你所描述的一切都很好,不会重现错误这里是我能想到的最简单的版本:</p>
<pre><code>$ mkdir /tmp/path
$ mkdir /tmp/path/top /tmp/path/top/p1 /tmp/path/top/p2
$ touch /tmp/path/top/__init__.py /tmp/path/top/p1/__init__.py /tmp/path/top/p2/__init__.py
$ touch /tmp/path/top/p1/quick1.py /tmp/path/top/p2/quick2.py$ echo 'import top.p1.quick1' > /tmp/path/top/p2/quick2.py
$ PYTHONPATH=/tmp/path python /tmp/path/top/p2/quick2.py
$ python -c 'import sys; sys.path.append("/tmp/path"); import top.p2.quick2'
</code></pre>
<p>它运行得很好。除非您使用的不是<code>from ... import *</code>,否则<code>__all__</code>是不相关的(而且您不应该这样做)。只要<code>top</code>(这里,<code>/tmp/path</code>)的父目录在<code>sys.path</code>上,一切都会好起来;如果父目录不在那里,您将得到一个错误。在</p>
<p>那么,为了重现您观察到的错误,您可以对这些操作序列进行什么最小的更改?在</p>