How to upgrade sqlite3 in python 2.7.3 inside a virtualenv?

后端 未结 3 1132
既然无缘
既然无缘 2020-12-09 23:47

There is a sqlite3 library that comes with python 2.7.3, but it is hardly the latest version.

I would like to upgrade it within a virtualenv environment. In other wo

相关标签:
3条回答
  • 2020-12-09 23:58

    I was stuck in the same problem once. This solved it for me:

    1. Download and untar the python version required
    2. mkdir local
    3. untar sqlite after downloading its package
    4. ./configure --prefix=/home/aanuj/local
    5. make
    6. make install
    7. ./configure --prefix=/home/anauj/local LDFLAGS='-L/home/aaanuj/local/lib' CPPFLAGS='-I/home/aanuj/local/include'
    8. make
    9. Find the sqlite3.so and copy to home/desired loc
    10. Extract beaver
    11. Setup the virtual env with the python version needed
    12. Activate the env
    13. unalias python
    14. export PYTHONPATH=/home/aanuj(location of _sqlite3.so)
    15. Enjoy
    0 讨论(0)
  • 2020-12-10 00:00

    I checked setting something like this, works:

    export export LD_LIBRARY_PATH=$HOME/<your-sqlite-install-dir>/sqlite3/lib
    

    I’ve added it next to the line export PATH in the activate file:

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

    One can check it in either one of two ways.

    From Python in the virtualenv, first do:

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

    Then exit Python and run ldd on the string returned:

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

    Or alternatively, again in Python from the virtualenv:

    >>> import sqlite3
    >>> sqlite3.sqlite_version
    '3.21.0'  # Was 3.11.8 before
    
    0 讨论(0)
  • 2020-12-10 00:04

    The below works for me, but please comment if there is any room for improvement:

    1. Activate the virtualenv to which you are going to install the latest sqlite3

    2. Get the latest source of pysqlite package from google code: wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz

    3. Compile pysqlite from source and together with the latest sqlite database: python setup.py build_static

    4. Install it to the site-packages directory of the virtualenv: python setup.py install

    5. The above will actually install the pysqlite into path-to-virtualenv/lib/python2.7/site-packages, which is where all other pip-installed libraries are.

    Now, I have the latest version of sqlite (compiled into pysqlite) installed within a virtualenv, so I can do: from pysqlite2 import dbapi2 as sqlite

    0 讨论(0)
提交回复
热议问题