Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在virtualenv中升级Python2.7.3中的sqlite3?_Python_Sqlite_Virtualenv - Fatal编程技术网

如何在virtualenv中升级Python2.7.3中的sqlite3?

如何在virtualenv中升级Python2.7.3中的sqlite3?,python,sqlite,virtualenv,Python,Sqlite,Virtualenv,python 2.7.3附带了一个sqlite3库,但它几乎不是最新版本 我想在VirtualEnvironment中升级它。换句话说,升级只适用于安装在此virtualenv中的python版本 正确的方法是什么?以下内容对我很有用,但如果有改进的余地,请发表意见: 激活要安装最新的sqlite3 从googlecode:wget获取pysqlite包的最新源代码http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz 从源代码处编译

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

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


正确的方法是什么?

以下内容对我很有用,但如果有改进的余地,请发表意见:

  • 激活要安装最新的
    sqlite3

  • 从googlecode:
    wget获取
    pysqlite
    包的最新源代码http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz

  • 从源代码处编译
    pysqlite
    ,并与最新的
    sqlite
    数据库一起编译:
    python setup.py build\u static

  • 将其安装到virtualenv:
    python setup.py安装的站点包目录中

  • 上面将实际将
    pysqlite
    安装到virtualenv/lib/python2.7/site-packages的
    路径中,这是所有其他安装了pip的库所在的位置


  • 现在,我已经在virtualenv中安装了最新版本的
    sqlite
    (编译成
    pysqlite
    ),所以我可以这样做:
    从pysqlite2导入dbapi2作为sqlite

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

  • 下载并卸载所需的python版本
  • mkdir本地
  • 下载sqlite包后卸载sqlite
  • ./configure--prefix=/home/aanuj/local
  • 制造
  • 安装
  • ./configure--prefix=/home/anauj/local LDFLAGS='-L/home/aaanuj/local/lib'CPPFLAGS='-I/home/aanuj/local/include'
  • 制造
  • 找到sqlite3.so并复制到主位置/所需位置
  • 提取海狸
  • 使用所需的python版本设置虚拟环境
  • 激活环境
  • 巨蟒
  • 导出PYTHONPATH=/home/aanuj(位置为_sqlite3.so)
  • 享受

  • 我检查了如下设置,效果如下:

    export export LD_LIBRARY_PATH=$HOME/<your-sqlite-install-dir>/sqlite3/lib
    
    你可以用两种方法中的任何一种来检查它

    在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:


    现在没时间了:应该可以使用
    pysqlite
    包,只要它在编译时选择较新的sqlite版本。当虚拟环境处于活动状态时,需要将其扩展为指向新的sqlite库。非常感谢!!!此修复了在Google代码链接不再有效的情况下尝试在Django中使用sqlite时出现的“无法导入名称utils”错误。可在以下网址找到:
    https://pypi.python.org/packages/source/p/pysqlite/pysqlite-2.6.3.tar.gz
    请注意,pysqlite仅适用于Python 2。Python 3的人运气不好。但在测试
    sqlite3.sqlite_version
    后,它仍然返回旧版本。此主题与使用Python路径的想法相矛盾:
    $ ldd /usr/lib/…/_sqlite3.cpython-35m-i386-linux-gnu.so
    > …
    > libsqlite3.so.0 => /home/…/sqlite3/lib/libsqlite3.so.0
    > …
    
    >>> import sqlite3
    >>> sqlite3.sqlite_version
    '3.21.0'  # Was 3.11.8 before