Python 3.8导入模块和自定义模块的顺序

史考特猴子

我对导入顺序和使用感到困惑。正如您在下面的代码中看到的那样,首先,我首先导入psycopg2。然后,我导入data_connect(依赖于psycopg2),所以有两个问题:(1)为什么解释器看不到我已经导入了psycopg2?(2)如何解决?谢谢!

错误信息:

File "C:\home\partscobra.com\wwwroot\data_connect.py" in data_connect:
db_conn = psycopg2.connect(...
NameError: name 'psycopg2' is not defined"

main.py:

import psycopg2
from data_connect import data_connect, data_cursor
#error here
[snip]

data_connect.py:

def data_connect():
    t_host = "blahblahblah"
    t_port = "5432"
    t_dbname = "inventory"
    t_user = "remote"
    t_pw = "blahblahblah"
    db_conn = psycopg2.connect(
        host=t_host,
        port=t_port,
        dbname=t_dbname,
        user=t_user,
        password=t_pw
        )
    db_conn.autocommit=True
    return db_conn

def data_cursor():
    db_conn = data_connect()
    db_cursor = db_conn.cursor()
    return db_cursor
凯尔伍德

您导入的内容将添加到当前名称空间(在本例中为main模块的全局名称空间),而不是每个模块(例如data_connect)。

如果您import psycopg2data_connect.py随后psycopg2将被添加到您的全局命名空间data_connect模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章