Python包和导入 - 没有名为xy的模块

时间:2013-02-06 10:28:14

标签: python package

我正在尝试像这样构建我的项目

app/
__init__.py
web/
    __init__.py
    web.py
database/
    __init__.py
    db.py

我只想将几个类从db.py导入web.py,但只抛出一个ImportError: No module named。到目前为止我尝试了什么

web.py

from __future__ import absolute_import
    from database.db import ClassA
OR

from __future__ import absolute_import
from app.database.db import ClassA

OR

from __future__ import absolute_import
import database import ClassA

我错过了什么?

//编辑:

db/__init __.py
from db import ClassA

所有其他__init__.py都是空的。我想我在这方面做错了。

2 个答案:

答案 0 :(得分:1)

应该是

from ..database import db

您还可以通过从项目根目录运行web.py来检查导入

python -m app.web.web

答案 1 :(得分:1)

假设:

C:\pytest\
   test.py
   \database\
       db.py
       __init__.py
   \subfolder\
       __init__.py
       coolios.py

__init__.py包含:

from db import *

,第二个__init__.py包含:

from coolios import *

db.py包含:

class WHAM():
    def __init__(self):
        print 'You import me!'

coolios.py包含:

from database import *

class ganster():
    def __init__(self):
        WHAM()

test.py包含:

from subfolder import ganster
ganster()

它应该有用。