Darwin Tech
Darwin Tech

Reputation: 18919

Django errors when removing .pyc files from repo

I have been scratching my head about this for some hours.

I have been pulling me repo on a test server quite happily. The project has quite a few commits. I wanted to clean out all the .pyc files from my repo so deleted them in my master and added *.pyc to .gitignore. That was the ONLY change to the last commit.

Now when I pull to the test server Django fails on an import. However the module is there and there were no other changes apart from the .pyc expunging. So this error is basically bogus.

If I re-add .pyc files it works happily again.

Can anyone shed any light on this?

EDIT:

this is the traceback:

Traceback (most recent call last):
File "./manage.py", line 14, in <module>
  execute_manager(settings)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
  self.execute(*args, **options.__dict__)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/core/management/base.py", line 209, in execute
  translation.activate('en-us')
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 100, in activate
  return _trans.activate(language)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 202, in activate
  _active.value = translation(language)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 185, in translation
  default_translation = _fetch(settings.LANGUAGE_CODE)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
  app = import_module(appname)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
  from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 3, in <module>
  from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/contrib/admin/util.py", line 1, in <module>
  from django.db import models
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/db/__init__.py", line 67, in <module>
  router = ConnectionRouter(settings.DATABASE_ROUTERS)
File "/home/galadarwin/.virtualenvs/datazone/lib/python2.7/site-packages/django/db/utils.py", line 114, in __init__
  raise ImproperlyConfigured('Error importing database router %s: "%s"' % (klass_name, e))
django.core.exceptions.ImproperlyConfigured: Error importing database router JournalRouter: "No module named journal.routers"

Upvotes: 1

Views: 201

Answers (2)

Darwin Tech
Darwin Tech

Reputation: 18919

Turns out that __init__.py had made it in as an argument in .gitignore. So all my modules were committed without __init__.py. Whilst the __init__.pyc files were still present these must have been used as a 'fallback' (I didn't realize python did that) so my error was obfuscated. My bad, but I learnt a couple of good lessons.

Upvotes: 1

Cubiczx
Cubiczx

Reputation: 1115

To clean Django .pyc files execute one or all commands in your terminal:

$ python manage.py cleanup
$ pyclean .
$ find . -name "*.pyc" -exec rm -f {} \;
$ find . -name \*.pyc -delete
$ python manage.py clean_pyc

Upvotes: 0

Related Questions