Tay*_*ith 10 python sqlite macos
我想在Python中使用SQLite版本3.8,但SQLite3模块使用的是过时版本.我在Mac上安装了SQLite版本3.8.4.3,但sqlite3.sqlite_version仍然返回3.7.13.
我在SO和其他地方做了很多搜索,但似乎无法找到明确的答案.
谢谢!
根据您的评论,您的问题是您预装的 sqlite 3.7 在您的路径上比第三方 3.8 更高。这意味着当你构建时pysqlite2,默认情况下,它会找到并使用 3.7,所以它对你没有任何好处。而且您可能不想为了解决这个问题而改变整个路径。
不过没关系,只要在构建时先找到 3.8,运行时先出现什么并不重要;3.8 的路径将被烘焙到模块中。有很多方法可以做到这一点,但最简单的是这样的:
$ brew install sqlite3
$ sudo -s
# LDFLAGS=-L/usr/local/opt/sqlite/lib CPPFLAGS=-I/usr/local/opt/sqlite/include pip2.7 install pysqlite
# ^D
$ python
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.7.13'
>>> import pysqlite2.dbapi2
>>> pysqlite2.dbapi2.sqlite_version
'3.8.6'
Run Code Online (Sandbox Code Playgroud)
该LDFLAGS和CPPFLAGS变量从输出来了brew install sqlite3一步。如果您sqlite3以其他方式安装,则需要获取适当的值 — 可能是/usr/local/liband /usr/local/include,但如果不是,则搜索libsqlite3.dyliband sqlite3.h。
请注意,如果您完全按照这些步骤进行操作,您将获得 的非胖版本libsqlite3,这意味着它pysqlite2无法在 32 位模式下运行。我怀疑这对你来说是个问题,但如果是,你可以安装它--universal,或者使用不同的安装程序而不是 Homebrew。
| 归档时间: |
|
| 查看次数: |
14025 次 |
| 最近记录: |