使用pyenv安装的python导入时找不到'_sqlite3'模块

问题描述 投票:0回答:2

通过

pyenv
在 macOS 上安装了 python 3.7.0。

sqlite3
已安装:

which sqlite3
/usr/bin/sqlite3

还尝试通过pip安装

pysqlite3

pip install pysqlite3

但是导入时找不到模块

sqlite3
:

In [1]: import sqlite3
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-5239c6be4108> in <module>
----> 1 import sqlite3

~/.pyenv/versions/3.7.0/lib/python3.7/sqlite3/__init__.py in <module>
     21 # 3. This notice may not be removed or altered from any source distribution.
     22
---> 23 from sqlite3.dbapi2 import *

~/.pyenv/versions/3.7.0/lib/python3.7/sqlite3/dbapi2.py in <module>
     25 import collections.abc
     26
---> 27 from _sqlite3 import *
     28
     29 paramstyle = "qmark"

ModuleNotFoundError: No module named '_sqlite3'

macOS上的sqlite3需要通过brew安装开发库吗?

python macos sqlite pip homebrew
2个回答
34
投票

这种方法有效:

CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.7.0

参考:

https://github.com/pyenv/pyenv/issues/108#issuecomment-359161050


0
投票

我知道这是 5 年前问过的问题,但对于任何新手来说,如果你使用 pyenv,我找到了一个简单的方法来解决这个问题。

运行: sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-开发

假设你已经安装了pyenv,在pyenv中安装新版本的python:pyenv install 3.8.10(将python版本更改为你想要的版本)

您的新版本的 python 应该具有所需的依赖项,如 sqlite3

© www.soinside.com 2019 - 2024. All rights reserved.