导入需要其他包的模块

时间:2014-07-07 22:40:31

标签: python-3.x

我正在尝试学习使用模块来清理我的代码。我遇到了范围问题。我了解到,当您导入模块时,Python会为该模块提供一个单独的范围。我确定答案就是在某个地方的文档中,但我似乎无法找到它。

我创建了一个模块info.py,其中包含一个函数getStuff

def getStuff(key):
    db_info = 'db_location' + 'db_credentials'
    db = create_engine('postgresql://' + db_info)
    connection = db.connect()
    data = do_sql_stuff(SELECT things FROM stuff)
    return(data)

然后在Python解释器中输入

>>>> import sqlalchemy
>>>> import info
>>>> data = getStuff(key)

并收到错误消息

NameError: name 'create_engine' is not defined

这告诉我info.py无法访问SQLAlchemy。如果我在解释器中定义getStuff,它会正确运行。

如何设置模块以便可以访问其他软件包?

1 个答案:

答案 0 :(得分:0)

正如我所料,这个问题有一个非常简单的解决方案。所有需要做的就是将import语句放在info.py文件的顶部。