创建数据库表时出错 - CKAN

Error when creating Database Tables - CKAN

我正在尝试在 Centos 6.8 上安装 CKAN 2.5.2

当我运行 paster db init -c /etc/ckan/default/development.ini

我收到错误

Traceback (most recent call last):
  File "/usr/lib/ckan/default/bin/paster", line 9, in <module>
    load_entry_point('PasteScript==2.0.2', 'console_scripts', 'paster')()
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/script/command.py", line 102, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/script/command.py", line 141, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/script/command.py", line 236, in run
    result = self.command()
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 205, in command
    self._load_config(cmd!='upgrade')
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 142, in _load_config
    conf = self._get_config()
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 139, in _get_config
    return appconfig('config:' + self.filename)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 261, in appconfig
    global_conf=global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 320, in _loadconfig
    return loader.get_context(object_type, name, global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 454, in get_context
    section)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 476, in _context_from_use
    object_type, name=use, global_conf=global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 406, in get_context
    global_conf=global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 328, in _loadegg
    return loader.get_context(object_type, name, global_conf)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 620, in get_context
    object_type, name=name)
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 646, in find_egg_entry_point
    possible.append((entry.load(), protocol, entry.name))
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/pkg_resources/__init__.py", line 2235, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/ckan/default/src/ckan/ckan/config/middleware.py", line 28, in <module>
    from ckan.config.environment import load_environment
  File "/usr/lib/ckan/default/src/ckan/ckan/config/environment.py", line 18, in <module>
    import ckan.lib.helpers as h
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/helpers.py", line 30, in <module>
    from bleach import clean as clean_html
  File "/usr/lib/ckan/default/lib/python2.6/site-packages/bleach/__init__.py", line 8, in <module>
    from html5lib.sanitizer import HTMLSanitizer
ImportError: No module named sanitizer

我关注了 wiki instructions

我卡在这一步了,不知道如何继续。

模块 html5lib 已导入并更新到最新版本。 Paster脚本在root账户下的virtualenv中执行。

此外,我运行将所有这些都放在 python2.6 中,因为这是 Centos 的默认设置。

一些附加信息

当我 运行 python 并导入 html5lib 然后帮助 (html5lib) 我得到这个

>>> import html5lib
>>> help(html5lib)
Help on package html5lib:

NAME
    html5lib

FILE
    /usr/lib/python2.6/site-packages/html5lib/__init__.py

DESCRIPTION
    HTML parsing library based on the WHATWG "HTML5"
    specification. The parser is designed to be compatible with existing
    HTML found in the wild and implements well-defined error recovery that
    is largely compatible with modern desktop web browsers.

    Example usage:

    import html5lib
    f = open("my_document.html")
    tree = html5lib.parse(f)

PACKAGE CONTENTS
    _ihatexml
    _inputstream
    _tokenizer
    _trie (package)
    _utils
    constants
    filters (package)
    html5parser
    serializer
    treeadapters (package)
    treebuilders (package)
    treewalkers (package)

CLASSES
    __builtin__.object
        html5lib.html5parser.HTMLParser

    class HTMLParser(__builtin__.object)
     |  HTML parser. Generates a tree structure from a stream of (possibly
     |  malformed) HTML
     |
     |  Methods defined here:
:

这里没有消毒剂。我需要使用特定版本的 html5lib 吗?

有人能帮忙吗?

您似乎安装了 2 个 html5lib 副本。当您执行 help(html5lib) 时,它显示的是安装在用户的 python 目录(/usr/lib/python2.6/site-packages/)中的副本,而不是安装了 ckan(和漂白剂)的 virtualenv (/usr/lib/ckan/default/lib/python2.6/site-packages/)。所以去掉前者以避免混淆。

是的,我认为您的 html5lib 版本有误,因为当我提供帮助时,包内容中列出了消毒剂。

这是正确的版本(在撰写本文时 - 将来检查 requirements.txt 中的内容):

$ pip freeze | grep html5lib
html5lib==0.9999999