【问题标题】:Python 3.2: can't import sqlite3 modulePython 3.2:无法导入 sqlite3 模块
【发布时间】:2023-03-18 04:06:03
【问题描述】:

我刚刚在 ubuntu 10.04.3 上安装了 python 3.2.2(按照自述文件中的所有说明)并尝试导入 sqlite3 模块 - 结果:

No module named _sqlite3

然后我查看了 lib-dynload 目录,发现 没有文件 _sqlite3.so(但它在 python 2.6 中)。

如何解决这个问题?

谢谢!

【问题讨论】:

  • Python 3 SQlite 可能有不同的包。 Python 2 和 Python 3 库不兼容。
  • 澄清一下 - 您编译了源代码而不是从存储库中提取它?
  • 安装过程:1)./configure2)make3)make test4)sudo make install

标签: python python-3.x


【解决方案1】:

如果是源码安装,需要安装sqlite3的开发库。

sudo apt-get install libsqlite3-dev

您可能还想安装libreadline-devlibssl-dev

【讨论】:

  • 安装 Python 后可以这样做还是需要重新安装?
  • 您需要进入源目录并重新运行 make 和 make install。
  • @LennartRegebro:在这种情况下,需要在从源代码编译 Python 之前安装 sqlite3(以及其他模块,如 readline、ssl 等)的开发库。 Python sqlite 模块的 C 源代码包含在 Python 的源代码中;但是它需要存在 sqlite3 的开发文件才能编译。它不是一个单独的库,而是 Python 的一部分。
  • @casevh:你是对的,我没有仔细阅读并回答错误。 :-)
【解决方案2】:

下载python 3.3.2 http://www.python.org/getit/

sqlite3 的development libraries(以及readline、ssl 等其他模块)need to be installed before compiling Python from source. Python sqlite 模块的C 源代码包含在Python 的源代码中;但是它需要存在 sqlite3 的开发文件才能编译。它不是一个单独的库,而是 Python 的一部分。

如果是源码安装,需要安装sqlite3的开发库。

sudo apt-get install libsqlite3-dev

在从源代码编译 Python 之前我应该​​安装哪些包/库? https://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-so

sudo apt-get install libreadline-dev
sudo apt-get install libssl-dev

常见开发环境列表 ...

build-essential (obviously)
libz-dev        (also pretty common and essential)
libreadline-dev (or the Python prompt is crap)
libncursesw5-dev
libssl-dev
libgdbm-dev
libsqlite3-dev
libbz2-dev
liblzma-dev
tk-dev
libdb-dev
libncursesw5-dev
libreadline5-dev
libssl-dev
libgdbm-dev
libc6-dev

安装 Python

tar xf Python-3.3.2.tar.xz
./configure
make
sudo make all install

【讨论】:

    【解决方案3】:

    当我使用 SQLAlchemy library 时,我的 Python 3.4.1ubuntu 12.04 上遇到了同样的问题。原因是与此问题相关的其他人建议,我的系统在编译和安装python 3.4.1之前没有安装开发包。所以我做了:

    sudo apt-get install libsqlite3-dev
    

    然后转到我提取的 python 源并按照此问题的答案中描述的步骤进行重新编译。然后我能够:

    Python 3.4.1 (default)
    [GCC 4.6.3] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sqlite3
    >>>
    

    【讨论】:

      【解决方案4】:

      sqlite3 不是“python”包的一部分,你可以从 端口:数据库/py-sqlite3。由于没有特定的 python3 版本 您需要在构建之前设置 PYTHON_VERSION=python3.5 的端口。 2.x 和 3.x 版本的包都可以和平共处。

      make -C /usr/ports/databases/py-sqlite3 PYTHON_VERSION=3.5 安装

      【讨论】:

        猜你喜欢
        • 2013-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-08
        • 2017-11-02
        相关资源
        最近更新 更多