Tornado中database模块被取消的替代方法

准备用用tornado重写本站,但发现import tornado.database时出错。

代码如下:

[root@lee ~]# python
Python 2.7.4 (default, Apr 11 2013, 17:08:33)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado.web
>>> import tornado.database
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named database
>>>

网上不少教程明明写的是这个模块,怎么会提示找不到这个模块呢?难道我没有安装MySQLdb的原因?

代码如下:

[root@lee tornado]# python
Python 2.7.4 (default, Apr 11 2013, 17:08:33)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

MySQLdb模块已经装好了,看来不是MySQLdb模块引起的。我又重装了一次tornado,结果还是没有database模块。

Python的模块就是一个py文件,我倒tornado目录去看了看,果然没有database.py这个模块:

代码如下:

[root@lee ~]# find /usr -name tornado
/usr/lib/python2.6/site-packages/tornado-3.0.1-py2.6.egg/tornado
/usr/local/lib/python2.7/site-packages/tornado-3.0.1-py2.7.egg/tornado
/usr/local/lib/python2.7/site-packages/tornado
[root@lee ~]# cd /usr/local/lib/python2.7/site-packages/tornado
[root@lee tornado]# ls
auth.py              escape.pyc      __init__.pyc  netutil.pyc            tcpserver.py   web.pyc
auth.pyc             gen.py          ioloop.py     options.py             tcpserver.pyc  websocket.py
autoreload.py        gen.pyc         ioloop.pyc    options.pyc            template.py    websocket.pyc
autoreload.pyc       httpclient.py   iostream.py   platform               template.pyc   wsgi.py
ca-certificates.crt  httpclient.pyc  iostream.pyc  process.py             test           wsgi.pyc
concurrent.py        httpserver.py   locale.py     process.pyc            testing.py
concurrent.pyc       httpserver.pyc  locale.pyc    simple_httpclient.py   testing.pyc
curl_httpclient.py   httputil.py     log.py        simple_httpclient.pyc  util.py
curl_httpclient.pyc  httputil.pyc    log.pyc       stack_context.py       util.pyc
escape.py            __init__.py     netutil.py    stack_context.pyc      web.py
[root@lee tornado]#

于是到tornado官网看了看文档,原来是tornado3.0版本以后废除database模块,但推出了一个类似database的模块torndb,我看了下源码基本就是MySQLdb的简单封装。
下载torndb,https://github.com/bdarnell/torndb
安装:

代码如下:

[root@lee software]# unzip torndb-master.zip
Archive:  torndb-master.zip
ab862d70f293304f3a37527dff549eb6818063f7
   creating: torndb-master/
  inflating: torndb-master/.gitignore 
  inflating: torndb-master/README.rst 
   creating: torndb-master/doc/
  inflating: torndb-master/doc/Makefile
  inflating: torndb-master/doc/conf.py 
  inflating: torndb-master/doc/index.rst 
  inflating: torndb-master/setup.py 
  inflating: torndb-master/torndb.py 
  inflating: torndb-master/tox.ini  
[root@lee software]# cd torndb-master
[root@lee torndb-master]# ls
doc  README.rst  setup.py  torndb.py  tox.ini
[root@lee torndb-master]# python setup.py build
running build
running build_py
creating build
creating build/lib
copying torndb.py -> build/lib
[root@lee torndb-master]# python setup.py install
running install
running build
running build_py
running install_lib
copying build/lib/torndb.py -> /usr/local/lib/python2.7/site-packages
byte-compiling /usr/local/lib/python2.7/site-packages/torndb.py to torndb.pyc
running install_egg_info
Writing /usr/local/lib/python2.7/site-packages/torndb-0.1-py2.7.egg-info
[root@lee torndb-master]#

安装好了试试能不能倒入torndb模块

代码如下:

[root@lee torndb-master]# python
Python 2.7.4 (default, Apr 11 2013, 17:08:33)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import torndb
>>>

OK,搞定。
其实使用torndb与直接使用MySQLdb模块操作数据库都一样,看个人喜好
关于torndb的文档请看这里:http://torndb.readthedocs.org/en/latest/

(0)

相关推荐

  • Tornado中database模块被取消的替代方法

    准备用用tornado重写本站,但发现import tornado.database时出错. 复制代码 代码如下: [root@lee ~]# python Python 2.7.4 (default, Apr 11 2013, 17:08:33) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "licens

  • 详解Node.js中path模块的resolve()和join()方法的区别

    关于Node.js中path模块的resolve()和join()方法的比较,对照着总结看例子差不多以后在写模块的时候思路就能很清晰了 resolve 作用:path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径. 语法:path.resolve([...paths]) 说明: ...paths <string> 一个路径或路径片段的序列 如果没有传入 path 片段,或者path 片段长度为零(空字符),则 path.resolve() 会返回当前工作目录的绝对路径(相当

  • jQuery1.9+中删除了live以后的替代方法

    根据jQuery的官方描述,live方法在1.7中已经不建议使用,在1.9中删除了这个方法.并建议在以后的代码中使用on方法来替代. on方法可以接受三个参数:事件名.触发选择器.事件函数. 需要特别注意的是:on方法中间的这个触发选择器就是你将要添加的HTML元素的类名.id或者元素名,使用它就可以实现live的效果. 例如我的html文档中已经有了一个id为parent的div,我将要在这个div内部再动态添加一个class为son的span,然后我为这个span绑定一个事件,那么我需要这样

  • Node.js中process模块常用的属性和方法

    前言 虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程.node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作. 如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性.不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必要了. 属性 一张表格大概可以看到

  • Android4.2中全屏或者取消标题栏的方法总结

    先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 复制代码 代码如下: <application android:icon="@drawable/icon" android:label="@string/app_

  • 在Python中关于使用os模块遍历目录的实现方法

    一.Python中os模块的常见的使用方法 os.listdir(path):遍历path的文件或者文件夹,返回一个列表 os.path.join(path1,path2,--,pathn):拼接路径 os.path.isdir(path):判断此路径对应的是否是文件夹 os.path.isfile(path):判断是否是文件 os.path.dirname(path):返回路径的文件夹名 os.path.filename(path):返回路径的文件名 os.getcwd():获取当前路径 二.

  • Anaconda下Python中GDAL模块的下载与安装过程

    本文介绍在Anaconda环境下,安装Python中栅格.矢量等地理数据处理库GDAL的方法. 需要注意的是,本文介绍基于conda install命令直接联网安装GDAL库的方法:这一方法有时不太稳定,且速度较慢.因此,如果有需要,大家可以参考Anaconda环境GDAL库基于whl文件的配置方法(https://www.jb51.net/article/280638.htm)这篇文章中的方法,可以更快速地配置GDAL库. 首先,我们打开“Anaconda Prompt (Anaconda)”

  • Flask中sqlalchemy模块的实例用法

    一.安装 $ pip install flask-sqlalchemy 二.配置 配置选项列表 : SQLALCHEMY_NATIVE_UNICODE | 可以用于显式禁用原生 unicode 支持.当使用 不合适的指定无编码的数据库默认值时,这对于 一些数据库适配器是必须的(比如 Ubuntu 上某些版本的 PostgreSQL ).| | SQLALCHEMY_POOL_SIZE | 数据库连接池的大小.默认是引擎默认值(通常 是 5 ) | | SQLALCHEMY_POOL_TIMEOU

  • Python中optionParser模块的使用方法实例教程

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. 示例如下: from optparse impo

  • python中模块查找的原理与方法详解

    前言 本文主要给大家介绍了关于python模块查找的原理与方式,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 基础概念 module 模块, 一个 py 文件或以其他文件形式存在的可被导入的就是一个模块 package 包,包含有 __init__ 文件的文件夹 relative path 相对路径,相对于某个目录的路径 absolute path 绝对路径,全路径 路径查找 python 解释器查找被引入的包或模块 Python 解释器是如何查找包和模块的 Python 执行一

随机推荐