我正在尝试在 Ubuntu 12.10 上安装并运行 Graphite。为此,我遵循了此操作手动的。
不幸的是在这一步:
接下来,我们将配置 Graphite 数据库。转到 Graphite webapp 目录并运行数据库脚本:
cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb
我收到以下错误:
Could not import graphite.local_settings, using defaults!
Could not import graphite.local_settings, using defaults!
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 459, in execute_manager
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 231, in execute
self.validate()
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "/usr/lib/python2.7/dist-packages/django/core/management/validation.py", line 30, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 158, in get_app_errors
self._populate()
File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 67, in _populate
self.load_app(app_name)
File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 88, in load_app
models = import_module('.models', app_name)
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/opt/graphite/webapp/graphite/events/models.py", line 6, in <module>
from tagging.managers import ModelTaggedItemManager
File "/usr/local/lib/python2.7/dist-packages/django_tagging-0.3.2-py2.7.egg/tagging/managers.py", line 8, in <module>
from .models import Tag, TaggedItem
File "/usr/local/lib/python2.7/dist-packages/django_tagging-0.3.2-py2.7.egg/tagging/models.py", line 7, in <module>
from django.utils.encoding import python_2_unicode_compatible
ImportError: cannot import name python_2_unicode_compatible
造成该问题的原因是什么?
我该如何修复它?
答案1
今天,我使用与您相同的手册遇到了完全相同的问题。我猜问题与为 2.7 安装了一些 Python 依赖项,而为 3.2 安装了一些依赖项有关。所以我决定只安装 2.7 并跳过 3.2 的所有软件包。
$ sudo apt-get install apache2 apache2-mpm-worker \
apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 \
libaprutil1-dbd-sqlite3 build-essential \
python-dev \
libapache2-mod-wsgi libaprutil1-ldap memcached \
python-cairo-dev python-ldap python-memcache \
python-pysqlite2 sqlite3 erlang-os-mon erlang-snmp rabbitmq-server \
bzr expect libapache2-mod-python python-setuptools
$ sudo easy_install django django-tagging zope.interface twisted txamqp
当我使用这两个命令代替手册中的命令时,我不再收到您提到的错误:
ImportError: cannot import name python_2_unicode_compatible