【问题标题】:Django CMS "No module named html5lib"Django CMS“没有名为 html5lib 的模块”
【发布时间】:2011-12-07 18:44:27
【问题描述】:

我安装了一个基本的 Django CMS 站点,其中包含所有默认和推荐的模块,但是我收到并错误提示...

更新

Request Method: GET
Request URL:    http://teamdjango.lnukapps.co.uk/admin/cms/page/21/
Django Version: 1.3.1
Exception Type: ImportError
Exception Value:    
No module named html5lib
Exception Location: /usr/lib/python2.6/site-packages/django_cms-2.2-py2.6.egg/cms/utils/html.py in <module>, line 2
Python Executable:  /usr/bin/python
Python Version: 2.6.6
Python Path:    
['/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg',
 '/usr/lib/python2.6/site-packages/html5lib-0.90-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_classy_tags-0.3.4.1-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_mptt-0.4.2-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_sekizai-0.4.2-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_cms-2.2-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_filer-0.9a1-py2.6.egg',
 '/usr/lib/python2.6/site-packages/django_polymorphic-0.2-py2.6.egg',
 '/usr/lib/python2.6/site-packages/easy_thumbnails-1.0_alpha_18-py2.6.egg',
 '/usr/lib/python2.6/site-packages/cmsplugin_filer-0.8.0-py2.6.egg',
 '/usr/lib64/python26.zip',
 '/usr/lib64/python2.6',
 '/usr/lib64/python2.6/plat-linux2',
 '/usr/lib64/python2.6/lib-tk',
 '/usr/lib64/python2.6/lib-old',
 '/usr/lib64/python2.6/lib-dynload',
 '/usr/lib64/python2.6/site-packages',
 '/usr/lib64/python2.6/site-packages/PIL',
 '/usr/lib/python2.6/site-packages',
 '/usr/lib/python2.6/site-packages']

 Server time:   Fri, 14 Oct 2011 14:05:59 +0100

html5lib 已经通过easy_install html5lib 安装,如果我在默认的 Python shell 中import html5lib,它可以正常导入。

Python 2.6.6 (r266:84292, May 20 2011, 16:42:11)
[GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import html5lib
>>>

这是在带有 Python 2.6.6 的 Scientific Linux 的全新安装上设置的。

我正在使用 Django 1.3.1。

我的 INSTALLED_APPS 如图所示。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',
    'cms',
    'mptt',
    'menus',
    'south',
    'sekizai',
    'cms.plugins.flash',
    'cms.plugins.googlemap',
    'cms.plugins.link',
    'cms.plugins.snippet',
    'cms.plugins.text',
    'cms.plugins.twitter',
    'filer',
    'cmsplugin_filer_file',
    'cmsplugin_filer_folder',
    'cmsplugin_filer_image',
    'cmsplugin_filer_teaser',
    'cmsplugin_filer_video',
    # 'reversion',
)

我的问题(如果现在还不明显;))是为什么导入 html5lib 会出现问题,我该如何解决。

更新 1

@马特-威廉森 谢谢,这里是html5lib文件信息

>>> html5lib.__file__
'/usr/lib/python2.6/site-packages/html5lib-0.90-py2.6.egg/html5lib/__init__.pyc'

我已更新 Django 错误以提供更多错误页面。如您所见,Python 路径包括 /usr/lib/python2.6/site-packages/html5lib-0.90-py2.6.egg,这表明它应该能够找到它。

【问题讨论】:

  • 您是否检查过 /usr/lib/python2.6/site-packages/html5lib-0.90-py2.6.egg 中的所有文件(或压缩后的鸡蛋本身)是否可由以下人员读取您的网络服务器的用户?
  • 作为一个粗略的测试,我对鸡蛋进行了 0777 测试,但它仍然没有帮助。它只是一个 .egg 文件,没有解压缩(我读它是因为它是纯 python 不像其他 egg 文件)。

标签: python django html5lib


【解决方案1】:

要么你安装了两个版本的python,要么你需要设置你的python路径。

获取模块的安装路径

>>> import html5lib
>>> html5lib.__file__

'/Library/Python/2.7/site-packages/html5lib-0.90-py2.7.egg/html5lib/init.pyc'

^D

设置PYTHONPATH 环境变量。

export PYTHONPATH="$PYTHONPATH:/Library/Python/2.7/site-packages/"
python manage.py runserver

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2011-07-26
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多