python:如何导入嵌套包?
我有一个名为myscrapy的包,目录结构是: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
+ 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
文件是无用的。