Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:如何导入嵌套包?_Python_Import - Fatal编程技术网

python:如何导入嵌套包?

python:如何导入嵌套包?,python,import,Python,Import,我有一个名为myscrapy的包,目录结构是: + spider-common --+ myscrapy ----+ basespiders ------+ __init__.py ------+ mod.py --+ __init__.py --+ mod.py 我有一个环境变量: export PYTHONPATH=~/spider-common 这就是成功: from myscrapy import mod 但它失败了: from myscrapy.basespiders impor

我有一个名为myscrapy的包,目录结构是:

+ spider-common
--+ myscrapy
----+ basespiders
------+ __init__.py
------+ mod.py
--+ __init__.py
--+ mod.py
我有一个环境变量:

export PYTHONPATH=~/spider-common
这就是成功:

from myscrapy import mod
但它失败了:

from myscrapy.basespiders import mod
ImportError:没有名为myscrapy.baseSpider的模块


为什么?

当存在特定结构时,import命令仅将每个文件夹作为包(可导入)处理(请参阅)。
您必须在导入的每个子目录中放置一个
\uuuu init\uuuuu.py
文件(可能是一个空白文件)。

您的图表让我有点困惑。
\uuuu init\uuuuuuuupy
mod.py
文件是位于顶层
spider公用文件夹的底部,还是位于
myscrappy
子文件夹中?缩进级别表示顶层,但与您所说的myScrapy import mod
行中的
不匹配,顶层的
\uuuu init\uuuuuu.py
文件是无用的。