【问题标题】:python2.6 with MySQLdb, NameError 'MySQLdb' not definedpython2.6 with MySQLdb, NameError 'MySQLdb' not defined
【发布时间】:2011-08-02 07:59:10
【问题描述】:

来自我可以从 MySQLdb 发出的解释器 >>> 就好了。所以,我假设模块确实加载了。我的来源如下:

从 Tkinter 导入 *
从 MySQLdb 导入 *
"""
负担得起的拖车的库存控制

功能:
connection() - 控制数据库连接
delete() - 从数据库中删除项目
edit() - 在数据库中编辑项目的属性
lookup() - 查找项目
new() - 向数据库添加新项目
receive() - 增加数据库中的项目数量
remove() - 减少数据库中项目的数量
report() - 显示库存活动
transfer() - 从一个位置移除项目,在另一个位置接收项目

"""
定义控制():
....dbInfo = { '用户名':'livetaor_atowtw', '密码':'垃圾邮件', \
....'server':'eggs.com', 'base':'livetaor_towing', 'table':'inventory' }
....def testConnection():
........sql = MySQLdb.connect(user=dbInfo[username], passwd=dbInfo[password], \
........host=dbInfo[server], db=dbInfo[base])
........MySQLdb.mysql_info(sql)

....testConnection()

控制()

这给了我:

brad@brads-debian:~/python/towing/inventory$ python inventory.py
回溯(最近一次通话最后一次):
..文件“inventory.py”,第 53 行,在
....控制()
..文件“inventory.py”,第 26 行,在控制中
....testConnection()
..文件“inventory.py”,第 22 行,在 testConnection
....sql = MySQLdb.connect(user=dbInfo[username], passwd=dbInfo[password], \
NameError:未定义全局名称“MySQLdb”

1) 我哪里出错了?
2)你们看到的任何其他问题?
3) 关于如何检查与数据库的有效连接(不仅仅是服务器)的任何建议?

【问题讨论】:

    标签: python mysql programming-languages network-programming


    【解决方案1】:

    from MySQLdb import *import MySQLdb非常不同的事情。

    【讨论】:

      【解决方案2】:

      这是由于您导入模块然后引用它的方式。

      变化:

      from MySQLdb import *
      

      import MySQLdb
      

      如果您打算按照自己的方式引用它。

      不管怎样,下面是这些语句和函数的工作原理:

      发件人:http://effbot.org/zone/import-confusion.htm

      import X 导入模块 X,并在当前命名空间中创建对该模块的引用。或者换句话说,在你运行这条语句之后,你可以使用 X.name 来引用模块 X 中定义的东西。

      from X import * 导入模块 X,并在当前命名空间中创建对该模块定义的所有公共对象的引用(即名称不以“_”开头的所有对象)。或者换句话说,在你运行这条语句之后,你可以简单地使用一个简单的名字来引用模块 X 中定义的东西。但是 X 本身没有定义,所以 X.name 不起作用。如果 name 已定义,则将其替换为新版本。如果 X 中的名称更改为指向其他对象,您的模块将不会注意到。

      from X import a, b, c 导入模块 X,并在当前命名空间中创建对给定对象的引用。或者换句话说,您现在可以在程序中使用 a 和 b 和 c。

      【讨论】:

      • 我的一周,弱智忘记了导入,以及它影响命名空间的方式。谢谢你提醒我我是多么的白痴。你的解释远远高于平均水平!我会尝试不要再次忘记这一课。
      猜你喜欢
      • 2013-05-15
      • 1970-01-01
      • 2022-12-02
      • 2013-01-30
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2020-11-07
      相关资源
      最近更新 更多