【问题标题】:Cannot import SQLite with Python 2.6无法使用 Python 2.6 导入 SQLite
【发布时间】:2010-09-18 23:59:00
【问题描述】:

我在 Unix 上运行 Python 2.6,当我运行交互式提示时(SQLite 应该是预装的)我得到:

[root@idev htdocs]# python
Python 2.6 (r26:66714, Oct 23 2008, 16:25:34)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>>

我该如何解决这个问题?

【问题讨论】:

    标签: python sqlite


    【解决方案1】:
    import sqlite3
    

    sqlite3 - SQLite 数据库的 DB-API 2.0 接口。

    您缺少.so(共享对象)- 可能是安装步骤。在我的 Linux python 安装中,_sqlite3 位于:

    ${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
    

    【讨论】:

      【解决方案2】:

      错误:

      ImportError: No module named _sqlite3
      

      表示SQLite3 没有找到关联的共享库。在 Mac OS X 上它是 _sqlite3.so,它在其他 Unix 系统上应该是一样的。

      要解决该错误,您必须在您的计算机上找到 _sqlite3.so 库,然后检查您的 PYTHONPATH 以获取此目录位置。

      要打印 Python 搜索路径,请在 Python shell 中输入以下内容:

      import sys
      print sys.path
      

      如果包含您的库的目录丢失,您可以尝试以交互方式添加它

      sys.path.append('/your/dir/here')
      

      试试看

      import sqlite3
      

      再次。如果这可行,您必须将此目录永久添加到您的 PYTHONPATH 环境变量中。

      PS:如果缺少该库,您应该(重新)安装该模块。

      【讨论】:

        【解决方案3】:

        试试这个:

        from pysqlite2 import dbapi2 as sqlite
        

        【讨论】:

          【解决方案4】:

          在我的系统_sqlite3.so 上,位于:

          '/usr/lib/python2.6/lib-dynload/_sqlite3.so'
          

          检查目录是否在您的sys.path

          >>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path))
          ['/usr/lib/python2.6/lib-dynload']
          

          【讨论】:

            【解决方案5】:

            Python 2.6 会检测 sqlite3 开发头文件的安装位置,如果 _sqlite3 不可用,则会静默跳过构建。如果您是从源代码构建,请安装 sqlite3,包括开发头文件。就我而言,sudo yum install sqlite-devel 在 CentOS 4.7 上解决了这个问题。然后,从源代码重建 Python。

            【讨论】:

            • 请澄清“从源代码重建 Python”的含义。谢谢
            【解决方案6】:

            这能解决你的问题吗?

            Python 2.5.4 (r254:67916, May 31 2009, 16:56:01)
            [GCC 4.3.3] on linux2
            Type "help", "copyright", "credits" or "license" for more information.
            >>> import sqlite
            Traceback (most recent call last):
              File "<stdin>", line 1, in <module>
            ImportError: No module named sqlite
            >>> import sqlite3
            >>>
            

            【讨论】:

              【解决方案7】:

              2.5.5。 Python 2.5 的 Mac 端口现在有这个提示:

              "py25-sqlite3 @2.5.4 (python, databases)
                  This is a stub. sqlite3 is now built with python25"
              

              因此将 python25 端口升级到python25 @2.5.5_0 使导入再次工作。 由于 sqlite3 是 python25 的依赖项之一, 它是在升级 python25 时重新构建的。 因此,

              $ sudo port upgrade python25
              

              在 Mac OS X 上可以解决问题,端口集合。

              【讨论】:

                【解决方案8】:

                我面临同样的问题。 解决步骤。

                1. 从 sqlite 网站下载最新的 sqlite3。 sqlite-autoconf*
                2. 只需 3 个简单步骤即可安装
                  1. ./配置
                  2. 制作
                  3. 进行安装
                3. 重建python 制作 进行安装

                【讨论】:

                  猜你喜欢
                  • 2012-02-09
                  • 1970-01-01
                  • 2021-12-06
                  • 2016-04-09
                  • 2023-03-13
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-01-11
                  • 2013-12-22
                  相关资源
                  最近更新 更多