擅长:python、mysql、java
<p>‘thepackage’、‘thesubpackage’等实际上是您正在使用的包的名称,还是您在这里用它们代替它们作为例子?如果名称不同,则可能是名称冲突。试试这个,但如果包的实际名称不同:</p>
<p>在“packtest”目录中,启动python解释器,然后键入:</p>
<p><code>>>> import thepackage</code></p>
<p>有用吗?如果是,请尝试:</p>
<p><code>>>> thepackage.__path__</code></p>
<p>您应该看到<code>['thepackage']</code>。如果你看到了不同的东西,那就是你的问题:你正在导入一个名为<code>thepackage</code>的不同包,它可能没有一个<code>thesubpackage.mary</code>模块,而这个模块正是ImportError的来源。我不知道为什么会这样;Python应该先在本地目录中搜索,然后再搜索路径和PYTHONPATH。在</p>
<p>编辑:还有一种可能:您的“thepackage”目录及其嵌套子目录的权限是什么?我做了一个实验:</p>
<pre><code>$ mkdir something
$ touch something/__init__.py
$ chmod 000 something
$ python
>>> import something
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named something
>>>
$ chmod 744 something
$ python
>>> import something
>>>
</code></pre>
<p>要查看权限,请从“packtest”目录中的终端输入<code>ls -l</code>。输出的第一列是权限。在</p>