python,访问psycopg2形式的def?

标签 python psycopg2

我正在尝试在一个文件中制作一组 def,这样我就可以在我想在 python 中制作脚本时导入它们

我已经试过了:

def get_dblink( dbstring):
"""
Return a database cnx.
"""
global psycopg2 
try
    cnx = psycopg2.connect( dbstring)
except Exception, e:
    print "Unable to connect to DB. Error [%s]" % ( e,)
    exit( )

但我收到此错误:未定义全局名称“psycopg2”

在我的主文件script.py中

我有:

import psycopg2, psycopg2.extras
from misc_defs import * 

hostname = '192.168.10.36'
database = 'test'
username = 'test'
password = 'test'

dbstring = "host='%s' dbname='%s' user='%s' password='%s'" % ( hostname, database, username, password)

cnx = get_dblink( dbstring)

谁能帮帮我?

最佳答案

您只需在第一个代码段中导入 psycopg2

如果您需要,可以在第二个代码段中“同时”导入它(Python 确保模块只导入一次)。为此尝试使用 globals 是不好的做法。

因此:在每个模块的顶部,导入在该特定模块中使用的每个模块。

另请注意,from x import *(带通配符)通常不被接受:它会使您的命名空间困惑并使您的代码不那么明确。

关于python,访问psycopg2形式的def?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510756/

相关文章:

python - ValueError at/(未设置所需的参数名称)

python - "UPDATE"处或附近的 psycopg2 语法错误

python - 使用 AWS Secrets Manager 连接到 Postgres 数据库

python - psycopg2安装成功,但无法导入python

python - 如何解决 Python TypeError?

Python 传递列表或 Numpy 数组

python - 带有 ForeignKey 引用的 Django 错误

macos - 如何在 Mac 上安装 psycopg2(找不到 pg_config 可执行文件错误)

python - python 中 exec 内的赋值

python - 从 dtype =object 的列中查找唯一值