1

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

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

我从http://sphinxsearch.com/downloads/release/ install 下载 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/

4

1 回答 1

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

于 2014-01-10T11:19:04.273 回答