Python2.7导入:识别目录但不识别模块

时间:2016-07-14 17:25:11

标签: python bash python-2.7 python-module pythonpath

我正在尝试将模块my_app/common/model/Model.py导入文件/my_app/common/database/db_update.py。我的PYTHONPATH指向app/common/。但是,当我尝试这样做时,我收到错误消息:

  File "/home/me/my_app/common/database/db_update.py", line 26, in <module>
    import model.Model
ImportError: No module named Model

我的文件结构的简化表示如下:

common/
├── customlogger
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── logger.py
│   └── logger.pyc
├── database
│   ├── DBSetup.py
│   ├── DBSetup.pyc
│   ├── db_update.py
│   ├── db_update.pyc
│   ├── __init__.py
│   └── __init__.pyc
├── __init__.py
├── __init__.pyc
└── model
    ├── __init__.py
    ├── __init__.pyc
    ├── Model.py
    └── Model.pyc

db_update.py文件的头部按此顺序包含以下导入(以及其他):

import customlogger.logger
import database.DBSetup
import model.Model

可能有用的一些信息:

  • 我尝试从model/目录导入其他模块。这些也无法识别并导致相同的错误(改为使用相应模块的名称)。
  • 我正在运行一个bash脚本,从common/旁边的目录中执行此操作 - 将其称为my_app/src/
  • 我的__init__.py个文件都是空的。
  • 我正在运行Ubuntu 14.04。

在我看来,python识别model/目录(否则,错误消息将显示为ImportError: No module named model.Model),但似乎认为尽管存在{{},但它不包含任何模块{1}}文件。是这样的吗?如果是这样,为什么这只发生在__init__.py目录而不是model/database/目录中?最后,我该如何解决这个问题?

非常感谢提前。

0 个答案:

没有答案