模块在Python中没有属性错误

时间:2013-09-23 09:55:55

标签: python

这是我的configurations.py

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import psycopg2

db_username = 'postgres'
db_password = 'postgres'
db_host = 'localhost'
db_name = 'testdb6'

engine = create_engine('postgresql+psycopg2://' + db_username + ':' + db_password + '@' + db_host +'/' + db_name,echo=True)

Session = sessionmaker()

Session.configure(bind=engine)

sess = Session()

Base = declarative_base()

当我尝试导入sess变量时出错。

说,在一个单独的模块中,我尝试做configurations.sess,我得到一个sess不是属性错误。但是configurations.Base工作正常。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

我假设您使用的库遵循惯例

  1. 方法和属性以小写字母
  2. 开头
  3. 类以大写字母开头。
  4. 记住这一点,你的变量没有遵循这个约定(这没关系,它不是错误,但有时它有助于遵循约定。)

    来到你的问题: sess指的是Session()类的新创建对象。在导入时它可能不存在。 另一方面,Base似乎是一种方法 - 因此你正在研究一种方法。

    重新阅读代码之后:行sess = Session()尝试创建一个新的类会话对象 - 这不是你想要的。使用sess = Session