问题是这样的:
代码目录结构:
-----Project
----conf
--- __init__.py
---setting.py
-----database
---__init__.py
---models.py #这个文件定义了所需要的数据表结构
models.py
<pre name="code" class="python">from sqlalchemy import Column, Integer,String
from conf.settings import engine, Base
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(30))
在database目录下执行 python models.py 报错:ImportError no module named conf.setting
这就很奇怪了,project中明明有conf 包,怎么会找不到conf.settings呢?找了很长时间,发现问题出在这里,python models.py 执行时,python的搜索路径是project/database 而不是这个工程所在的目录,也就是说conf包不在搜索路径中,找到原因就好办了,把工程目录添加到sys.path中,就可以了。
在models.py中加入这段代码就可以了:
import sys
sys.path.append('C:/Project')
from sqlalchemy import Column, Integer,String
from conf.settings import engine, Base
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(30))