Làm cách nào để thêm mô-đun sqlite3 vào Python?


107

Ai đó có thể cho tôi biết cách cài đặt mô-đun sqlite3 cùng với phiên bản Python mới nhất không? Tôi đang sử dụng Macbook và trên dòng lệnh, tôi đã thử:

pip install sqlite

nhưng một lỗi bật lên.


3
Nếu python của bạn được tạo từ nguồn theo cách thủ công và gặp lỗi này, trước tiên bạn nên cài đặt gói sqlite-devel, sau đó xây dựng lại python, như @falsetru đã nói, tên gói sẽ khác nhau tùy thuộc vào hệ điều hành.
ngn999

Đối với everone đang cố gắng xây dựng python từ nguồn và gặp lỗi này: Câu trả lời thực sự tốt này đáp ứng quy trình liên kết và các phụ thuộc bạn cần. stackoverflow.com/a/6171511/6273503
Harper

Câu trả lời:


187

Bạn không cần cài đặt sqlite3mô-đun. Nó được bao gồm trong thư viện chuẩn (kể từ Python 2.5).


4
Tôi thực sự có một python 2.5.4 không bao gồm sqlite3 :(
shevy

@ user722915, Theo Có gì mới trong Python 2.5 , Mô-đun pysqlite ( pysqlite.org ), một trình bao bọc cho cơ sở dữ liệu nhúng SQLite, đã được thêm vào thư viện tiêu chuẩn dưới tên gói sqlite3.
falsetru,

10
nếu python3 của bạn được tạo từ nguồn theo cách thủ công và gặp lỗi này, trước tiên bạn nên cài đặt gói sqlite-devel, sau đó xây dựng lại python3.
ngn999

@ ngn999, Bạn nên comment câu hỏi để OP biết nhé. Bởi vì điều này đã được trả lời rất lâu, và nó sẽ không được thông báo cho OP nếu bạn bình luận cho câu trả lời.
falsetru

3
@ ngn999, BTW, tên gói sẽ khác nhau tùy thuộc vào Hệ điều hành. Ví dụ, trong Ubuntu, nó libsqlite3-dev.
falsetru

44

Tôi có python 2.7.3 và điều này đã giải quyết được vấn đề của tôi:

pip install pysqlite

10
Cân nhắc rằng điều này không áp dụng được cho Python 3.
Phyticist.

40

Đối với phiên bản Python 3:

pip install pysqlite3 

15

Thông thường, nó được bao gồm. Tuy nhiên, như @ ngn999 đã nói, nếu python của bạn đã được tạo từ nguồn theo cách thủ công, bạn sẽ phải thêm nó.

Đây là một ví dụ về tập lệnh sẽ thiết lập phiên bản đóng gói (môi trường ảo) của Python3 trong thư mục người dùng của bạn với phiên bản đóng gói của sqlite3 .

INSTALL_BASE_PATH="$HOME/local"
cd ~
mkdir build
cd build
[ -f Python-3.6.2.tgz ] || wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -zxvf Python-3.6.2.tgz

[ -f sqlite-autoconf-3240000.tar.gz ] || wget https://www.sqlite.org/2018/sqlite-autoconf-3240000.tar.gz
tar -zxvf sqlite-autoconf-3240000.tar.gz

cd sqlite-autoconf-3240000
./configure --prefix=${INSTALL_BASE_PATH}
make
make install

cd ../Python-3.6.2
LD_RUN_PATH=${INSTALL_BASE_PATH}/lib configure
LDFLAGS="-L ${INSTALL_BASE_PATH}/lib"
CPPFLAGS="-I ${INSTALL_BASE_PATH}/include"
LD_RUN_PATH=${INSTALL_BASE_PATH}/lib make
./configure --prefix=${INSTALL_BASE_PATH}
make
make install

cd ~
LINE_TO_ADD="export PATH=${INSTALL_BASE_PATH}/bin:\$PATH"
if grep -q -v "${LINE_TO_ADD}" $HOME/.bash_profile; then echo "${LINE_TO_ADD}" >> $HOME/.bash_profile; fi
source $HOME/.bash_profile

Tại sao làm điều này? Bạn có thể muốn có một môi trường python mô-đun mà bạn có thể phá hủy và xây dựng lại hoàn toàn mà không ảnh hưởng đến hệ điều hành của mình – cho một môi trường phát triển độc lập. Trong trường hợp này, giải pháp là cài đặt sqlite3 theo mô-đun.


1
Cũng có thể xảy ra nếu bạn sử dụng pyenv để quản lý các phiên bản Python của mình, nhưng bạn chưa cài đặt tất cả các gói hệ thống khi cài đặt trình thông dịch Python.
MarkNS
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.