【问题标题】:Install pysqlite in virtualenv with python3 support在具有 python3 支持的 virtualenv 中安装 pysqlite
【发布时间】:2014-06-04 13:28:33
【问题描述】:

我已经创建了 virtualenv:

mkvirtualenv -p /usr/bin/python3.4 django

之后,我尝试安装 pysqlite:

pip install pysqlite

但我得到了:

Downloading/unpacking pysqlite
  Downloading pysqlite-2.6.3.tar.gz (76kB): 76kB downloaded
  Running setup.py (path:/home/sigo/.virtualenvs/django/build/pysqlite/setup.py) egg_info for package pysqlite
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/home/sigo/.virtualenvs/django/build/pysqlite/setup.py", line 85
        print "Is sphinx installed? If not, try 'sudo easy_install sphinx'."
                                                                           ^
    SyntaxError: invalid syntax
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/home/sigo/.virtualenvs/django/build/pysqlite/setup.py", line 85

    print "Is sphinx installed? If not, try 'sudo easy_install sphinx'."

                                                                       ^

SyntaxError: invalid syntax

似乎 pip 尝试使用 python2。我该如何解决这个问题?

【问题讨论】:

  • 检查你是否有 python 3 的 pip。这将被命名为 pip-3.2
  • 使用 pip3 和 pip3.4 会导致同样的错误。
  • 快速浏览似乎建议您需要安装pysqlite3
  • 有关 print 语句的语法错误表明 pysqlite 是用 Python2 编写的,而不是 Python3。可悲的是,@ghaering 的答案似乎是正确的。

标签: python sqlite python-3.x pip virtualenv


【解决方案1】:

Python 3.x 没有公开版本的 pysqlite。对于 Python 3.x,标准库中的 sqlite3 模块是 pysqlite 的最新版本。

【讨论】:

  • 您对如何获得对 sqlite3 的 FTS3/4 支持有什么建议吗?我希望通过使用 pip 安装 pysqlite 来获得它。
  • 如果 Python 加载了一个支持 FTS3/FTS4 的 SQLite 共享库,那么你就可以了。 Python sqlite3模块或pysqlite不需要重新编译。
  • 如果您下载最新的 sqlite-autoconf-* 文件并使用 ./configure --prefix=/opt/sqlite3 make -j4 install 安装它,那么它默认使用 fts3 和 rtree 扩展构建.然后,您可以导出 LD_LIBRARY_PATH=/opt/sqlite3/lib,随后启动的 Python 进程将获取刚刚安装的 sqlite3 库。在 Mac 上,它是 DYLD_LIBRARY_PATH。
【解决方案2】:

我正在关注this 包含 SQLite 的 JSON1 扩展的过程。

运行时

python setup.py install

虚拟环境中pysqlite 的命令 (miniconda) 我收到以下输出:

Python 3 不支持 pysqlite。使用 Python 3 时,请使用 标准库中的 sqlite3 模块。

设置

export LD_LIBRARY_PATH=~/bin/jqlite/lib

不会改变这一点。

【讨论】:

  • 我的错。我在这里感到困惑。据我了解,不需要 Pysqlite,通过在虚拟环境中设置 LD_LIBRARY_PATH 应该可以使用 sqlite3 模块的 JSON1 扩展。我会尽快检查并提供相关信息。
猜你喜欢
  • 2016-02-06
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2015-12-04
  • 2014-12-27
  • 2014-01-23
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多