¿Cómo actualizar sqlite3 en python 2.7.3 dentro de un virtualenv?

Hay una biblioteca sqlite3 que viene con python 2.7.3, pero no es la última versión.

Me gustaría actualizarlo dentro de un entorno virtualenv. En otras palabras, la actualización solo se aplica a la versión de Python instalada dentro de este virtualenv.

¿Cuál es la forma correcta de hacerlo?

Lo siguiente funciona para mí, pero por favor comente si hay algún margen de mejora:

  1. Active el virtualenv en el que va a instalar el último sqlite3

  2. Obtenga la última fuente del paquete pysqlite de google code: wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz

  3. Compile pysqlite desde la fuente y junto con la última base de datos sqlite : python setup.py build_static

  4. Instálelo en el directorio de paquetes de sitio de virtualenv: python setup.py install

  5. Lo anterior instalará realmente el pysqlite en los pysqlite path-to-virtualenv/lib/python2.7/site-packages , que es donde están todas las demás bibliotecas instaladas en pip.

Ahora, tengo la última versión de sqlite (comstackda en pysqlite ) instalada dentro de un virtualenv, así que puedo hacer: from pysqlite2 import dbapi2 as sqlite

Estuve atrapado en el mismo problema una vez. Esto lo resolvió para mí:

  1. Descargar y descomprimir la versión de python requerida.
  2. mkdir local
  3. untar sqlite después de descargar su paquete
  4. ./configure –prefix = / home / aanuj / local
  5. hacer
  6. hacer instalar
  7. ./configure –prefix = / home / anauj / local LDFLAGS = ‘- L / home / aaanuj / local / lib’ CPPFLAGS = ‘- I / home / aanuj / local / include’
  8. hacer
  9. Encuentre el sqlite3.so y cópielo a la página de inicio / deseada
  10. Extraer el castor
  11. Configura el entorno virtual con la versión de python necesaria.
  12. Activar el env
  13. unalias python
  14. export PYTHONPATH = / home / aanuj (ubicación de _sqlite3.so)
  15. Disfrutar

He comprobado configurar algo como esto, funciona:

 export export LD_LIBRARY_PATH=$HOME//sqlite3/lib 

Lo he agregado junto a la línea de export PATH en el archivo de activate :

 PATH="$VIRTUAL_ENV/bin:$PATH" export PATH export LD_LIBRARY_PATH=$HOME/…/sqlite3/lib # <- Here 

Uno puede comprobarlo de una de dos maneras.

Desde Python en el virtualenv , primero haz:

 >>> import _sqlite3 >>> _sqlite3.__file__ '/usr/lib/…/_sqlite3.cpython-35m-i386-linux-gnu.so' 

Luego salga de Python y ejecute ldd en la cadena devuelta:

 $ ldd /usr/lib/…/_sqlite3.cpython-35m-i386-linux-gnu.so > … > libsqlite3.so.0 => /home/…/sqlite3/lib/libsqlite3.so.0 > … 

O alternativamente, otra vez en Python desde el virtualenv :

 >>> import sqlite3 >>> sqlite3.sqlite_version '3.21.0' # Was 3.11.8 before