django-sphinx电池支持python3

时间:2014-01-10 09:46:52

标签: python django python-3.x django-sphinx

我正在尝试使用pip-3.2安装django-sphinx,但我有语法错误。

请告诉我如何使用Python 3.2安装django-sphinx。

我从http://sphinxsearch.com/downloads/release/下载sphinx deb软件包 安装:

dpkg -i sphinxsearch_2.1.4-release-1~wheezy_amd64.deb

安装日志:

    Do not forget to reindex all indexes by running: indexer --all

Starting sphinxsearch: Sphinx 2.1.4-id64-release (rel21-r4421)
Copyright (c) 2001-2013, Andrew Aksyonoff
Copyright (c) 2008-2013, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
listening on all interfaces, port=9312
listening on all interfaces, port=9306
precaching index 'test1'
WARNING: index 'test1': preload: failed to open /var/lib/sphinxsearch/data/test1.sph: No such file or directory; NOT SERVING
precaching index 'test1stemmed'
WARNING: index 'test1stemmed': preload: failed to open /var/lib/sphinxsearch/data/test1stemmed.sph: No such file or directory; NOT SERVING
WARNING: multiple addresses found for 'localhost', using the first one (ip=127.0.0.1)
precaching index 'rt'
precached 3 indexes in 0.040 sec
sphinxsearch is started.

安装sphinx后我运行pip-3.2并尝试安装django-sphinx: 安装日志:

Downloading/unpacking django-sphinx
  Downloading django-sphinx-2.2.4.tar.gz
  Running setup.py egg_info for package django-sphinx

    warning: no previously-included files matching '*~' found anywhere in distri
bution
Requirement already satisfied (use --upgrade to upgrade): django in /usr/local/l
ib/python3.2/dist-packages (from django-sphinx)
Installing collected packages: django-sphinx
  Running setup.py install for django-sphinx

    warning: no previously-included files matching '*~' found anywhere in distri
bution
      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/config.py", line
 56
        print render_to_string(getattr(settings, 'SPHINX_CONFIG_TEMPLATE', 'conf
/sphinx.conf'), context)
                             ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/apis/current.py"
, line 5
        except ImportError, exc:
                          ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/apis/api278/__in
it__.py", line 78
        SPH_ATTR_MULTI                  = 0X40000000L
                                                     ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/apis/api275/__in
it__.py", line 75
        SPH_ATTR_MULTI                  = 0X40000000L
                                                     ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/apis/api263/__in
it__.py", line 119
        except socket.error, msg:
                           ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/utils/config.py"
, line 18
        raise ValueError, "Only MySQL and PostgreSQL engines are supported by Sp
hinx."
                        ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/models.py", line
 450
        raise NotImplementedError, 'Related object and/or multiple field lookups
not supported'
                                 ^
    SyntaxError: invalid syntax

      File "/usr/local/lib/python3.2/dist-packages/djangosphinx/management/comma
nds/generate_sphinx_config.py", line 19
        print generate_config_for_model(model, index)
                                      ^
    SyntaxError: invalid syntax

Successfully installed django-sphinx
Cleaning up...

也许我的问题:django -sphinx不支持python3.X? https://www.djangopackages.com/grids/g/search/

1 个答案:

答案 0 :(得分:0)

出现语法错误的原因之一是try / except语法从Python 2更改为Python 3。

在Python 3中,你应该使用

except ImportError as exc:

而不是

except ImportError, exc:

这不仅仅是关于导入语法,阅读我们看到的错误消息,由于两个版本之间不兼容,还存在其他问题。我猜django-sphinx还没有更新到使用Python 3。

参考文献:http://docs.python.org/3/whatsnew/3.0.html