如何在virtualenv中升级python 2.7.3中的sqlite3?

问题描述 投票:4回答:3

python 2.7.3附带了一个sqlite3库,但它不是最新版本。

我想在virtualenv环境中升级它。换句话说,升级仅适用于此virtualenv中安装的python版本。

这样做的正确方法是什么?

python sqlite virtualenv
3个回答
4
投票

以下内容适用于我,但如果有任何改进空间,请发表评论:

  1. 激活您要安装最新sqlite3的virtualenv
  2. 从谷歌代码:pysqlite获取wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz软件包的最新来源
  3. 从源代码编译pysqlite以及最新的sqlite数据库:python setup.py build_static
  4. 将它安装到virtualenv:python setup.py install的site-packages目录中
  5. 以上实际上将pysqlite安装到path-to-virtualenv/lib/python2.7/site-packages,这是所有其他pip安装的库。

现在,我在virtualenv中安装了最新版本的sqlite(编译成pysqlite),所以我可以这样做:from pysqlite2 import dbapi2 as sqlite


1
投票

我曾经遇到过同样的问题。这解决了我:

  1. 下载并解压缩所需的python版本
  2. mkdir当地
  3. 下载其软件包后解压缩sqlite
  4. ./configure --prefix = / home / aanuj / local
  5. 使
  6. make install
  7. ./configure --prefix = / home / anauj / local LD​​FLAGS =' - L / home / aaanuj / local / lib'CPPFLAGS =' - I / home / aanuj / local / include'
  8. 使
  9. 找到sqlite3.so并复制到home /所需的loc
  10. 提取海狸
  11. 使用所需的python版本设置虚拟环境
  12. 激活环境
  13. unalias python
  14. export PYTHONPATH = / home / aanuj(_sqlite3.so的位置)
  15. 请享用

1
投票

我检查了这样的设置,有效:

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
© www.soinside.com 2019 - 2024. All rights reserved.