graphite/carbon ImportError: No module named fields

Ivan picture Ivan · Jul 12, 2015 · Viewed 8.9k times · Source

I am able to follow almost all the instructions here

but when I get to

[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]$ 

Not sure why I am getting this error?

I also tried these instructions, and it gets hung up approximately at the same place

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]$ 

If I echo the PYTHONPATH, I get

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

So I then created

/etc/profile.d/local_python.sh 

with the contents

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

I created a new shell and echo now seems correct

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

Now I run

[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: Could not import settings 'graphite.settings' (Is it on sys.path?): No module named 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]$ 

Answer

Peigong picture Peigong · Sep 14, 2015

The issue was solved when the package django-tagging (0.3.6) was downgraded using the following commands:

pip uninstall django-tagging  
pip install 'django-tagging<0.4'