python 2.7.3附带了一个sqlite3库,但它不是最新版本。
我想在virtualenv环境中升级它。换句话说,升级仅适用于此virtualenv中安装的python版本。
这样做的正确方法是什么?
以下内容适用于我,但如果有任何改进空间,请发表评论:
sqlite3
的virtualenvpysqlite
获取wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz
软件包的最新来源pysqlite
以及最新的sqlite
数据库:python setup.py build_static
python setup.py install
的site-packages目录中pysqlite
安装到path-to-virtualenv/lib/python2.7/site-packages
,这是所有其他pip安装的库。现在,我在virtualenv中安装了最新版本的sqlite
(编译成pysqlite
),所以我可以这样做:from pysqlite2 import dbapi2 as sqlite
我曾经遇到过同样的问题。这解决了我:
我检查了这样的设置,有效:
export export LD_LIBRARY_PATH=$HOME/<your-sqlite-install-dir>/sqlite3/lib
我已将它添加到export PATH
文件中的activate
行旁边:
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
export LD_LIBRARY_PATH=$HOME/…/sqlite3/lib # <- Here
可以用两种方式中的任何一种来检查它。
从virtualenv中的Python开始,首先要:
>>> import _sqlite3
>>> _sqlite3.__file__
'/usr/lib/…/_sqlite3.cpython-35m-i386-linux-gnu.so'
然后退出Python并在返回的字符串上运行ldd
:
$ ldd /usr/lib/…/_sqlite3.cpython-35m-i386-linux-gnu.so
> …
> libsqlite3.so.0 => /home/…/sqlite3/lib/libsqlite3.so.0
> …
或者,再次使用virtualenv的Python:
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.21.0' # Was 3.11.8 before