Есть библиотека sqlite3, которая поставляется с python 2.7.3, но это едва ли последняя версия.

Я хотел бы обновить его в среде virtualenv. Другими словами, обновление относится только к версии python, установленной в пределах этого virtualenv.

Как правильно это сделать?

4
skyork 27 Янв 2013 в 01:42

3 ответа

Лучший ответ

Ниже работает для меня, но, пожалуйста, прокомментируйте, если есть какие-либо возможности для улучшения:

  1. Активируйте virtualenv, в который вы собираетесь установить самую последнюю версию sqlite3

  2. Получить последний источник пакета pysqlite из кода Google: wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz

  3. Скомпилируйте pysqlite из исходного кода и вместе с базой данных latest sqlite: python setup.py build_static

  4. Установите его в каталог site-packages в virtualenv: python setup.py install

  5. Вышесказанное фактически установит pysqlite в path-to-virtualenv/lib/python2.7/site-packages, где находятся все остальные библиотеки, установленные с помощью pip.

Теперь у меня есть последняя версия sqlite (скомпилированная в pysqlite), установленная в virtualenv, так что я могу сделать: from pysqlite2 import dbapi2 as sqlite

4
skyork 17 Июн 2013 в 11:53

Я проверил установку что-то вроде этого, работает:

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

Проверить это можно одним из двух способов.

Из Python в virtualenv сначала выполните:

>>> 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
> …

Или, в качестве альтернативы, снова в Python из virtualenv :

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.21.0'  # Was 3.11.8 before
1
Hibou57 24 Дек 2017 в 18:58

Я застрял в той же проблеме однажды. Это решило это для меня:

  1. Загрузите и распакуйте требуемую версию Python
  2. Мкдир местный
  3. untar sqlite после загрузки пакета
  4. ./configure --prefix = / home / aanuj / local
  5. сделать
  6. сделать установку
  7. ./configure --prefix = / home / anauj / local LDFLAGS = '- L / home / aaanuj / local / lib' CPPFLAGS = '- I / home / aanuj / local / include'
  8. сделать
  9. Найдите sqlite3.so и скопируйте в дом / нужное место
  10. Экстракт бобра
  11. Настройте виртуальную среду с необходимой версией Python
  12. Активировать env
  13. Unalias Python
  14. export PYTHONPATH = / home / aanuj (расположение _sqlite3.so)
  15. наслаждаться
1
Aakash Anuj 2 Июл 2013 в 05:08