graphite / carbon ImportError:没有名为fields的模块

时间:2015-07-12 00:44:56

标签: python centos7 graphite graphite-carbon

我能够遵循几乎所有说明here

但是当我到达

[idf@node1 graphite]$ cd /opt/graphite/webapp/graphite/
[idf@node1 graphite]$ sudo python manage.py syncdb
Could not import graphite.local_settings, using defaults!
/opt/graphite/webapp/graphite/settings.py:244: UserWarning: SECRET_KEY is set to an unsafe default. This should be set in local_settings.py for better security
  warn('SECRET_KEY is set to an unsafe default. This should be set in local_settings.py for better security')
ImportError: No module named fields
[idf@node1 graphite]$ 

我不知道为什么会收到此错误?

我也试过这些说明,它大约挂在同一个地方

https://www.digitalocean.com/community/tutorials/how-to-keep-effective-historical-logs-with-graphite-carbon-and-collectd-on-centos-7

[idf@node1 graphite]$ sudo PYTHONPATH=/opt/graphite/webapp/ django-admin.py syncdb --settings=graphite.settings
/var/tmp/sclHwyLM6: line 8: PYTHONPATH=/opt/graphite/webapp/: No such file or directory
[idf@node1 graphite]$ 

如果我回应PYTHONPATH,我会

[idf@node1 ~]$ echo $PYTHONPATH
/usr/lib64/python2.7/site-packages/openmpi
[idf@node1 ~]$ 

所以我随后创建了

/etc/profile.d/local_python.sh 

内容

PYTHONPATH="/opt/graphite/webapp/":"${PYTHONPATH}"
export PYTHONPATH

我创建了一个新的shell,echo现在似乎是正确的

[idf@node1 graphite]$ echo $PYTHONPATH
/opt/graphite/webapp/:/usr/lib64/python2.7/site-packages/openmpi
[idf@node1 graphite]$ 

现在我跑

[idf@node1 graphite]$ sudo django-admin.py syncdb --settings=graphite.settings
Traceback (most recent call last):
  File "/home/idf/anaconda/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 263, in fetch_command
    app_name = get_commands()[subcommand]
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 109, in get_commands
    apps = settings.INSTALLED_APPS
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/idf/anaconda/lib/python2.7/site-packages/django/conf/__init__.py", line 134, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'graphite.settings' (Is it on sys.path?): No module named graphite.settings
[idf@node1 graphite]$ 

ImportError:无法导入设置'graphite.settings'(是否在sys.path上?):没有名为graphite.settings的模块

[idf@node1 graphite]$ pwd
/opt/graphite/webapp/graphite
[idf@node1 graphite]$ ls
account           composer           local_settings.pyc         node.py             storage.py     version
app_settings.py   dashboard          local_settings.py.example  node.pyc            storage.pyc    views.py
app_settings.pyc  events             logger.py                  readers.py          templates      views.pyc
browser           finders            logger.pyc                 readers.pyc         thirdparty     whitelist
carbonlink.py     __init__.py        manage.py                  remote_storage.py   url_shortener  wsgi.py
carbonlink.pyc    __init__.pyc       manage.pyc                 remote_storage.pyc  urls.py        wsgi.pyc
cli               intervals.py       metrics                    render              urls.pyc
compat.py         intervals.pyc      middleware.py              settings.py         util.py
compat.pyc        local_settings.py  middleware.pyc             settings.pyc        util.pyc
[idf@node1 graphite]$ 

2 个答案:

答案 0 :(得分:2)

我能够通过替换像这样的路径来实现它的工作

sudo django-admin.py syncdb --settings=graphite.settings

有这样的路径

sudo /home/idf/anaconda/bin/django-admin.py syncdb --pythonpath /opt/graphite/webapp --settings graphite.settings 

答案 1 :(得分:1)

@Peigong正确地解决了它。我将为问题添加解释。

django-tagging 0.4需要新版本的Django 1.7或更高版本以及Python 2.7或更高版本。将django-tagging降级为0.3.6将适用于较旧的Django,例如Django 1.5

pip uninstall django-tagging
pip install django-tagging===0.3.6

或在CM

python_pip "django-tagging" do
    version "0.3.6"
end

在此处查看更改日志以及有关django-tagging的更多信息: https://pypi.python.org/pypi/django-tagging