1

私はこれについて数時間頭を悩ませてきました。

私はテストサーバーでレポを非常に喜んで引っ張ってきました。プロジェクトにはかなりの数のコミットがあります。リポジトリからすべての.pycファイルをクリーンアップしたかったので、マスターでそれらを削除し、.gitignoreに*.pycを追加しました。それが最後のコミットへの唯一の変更でした。

テストサーバーにプルすると、Djangoはインポートに失敗します。ただし、モジュールはそこにあり、.pycの消去以外の変更はありませんでした。したがって、このエラーは基本的に偽物です。

.pycファイルを再度追加すると、正常に機能します。

誰かがこれに光を当てることができますか?

編集:

これはトレースバックです:

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"
4

2 に答える 2

1

__init__.py.gitignoreの引数としてそれを作ったことが判明しました。したがって、すべてのモジュールはなしでコミットされ__init__.pyました。__init__.pycファイルがまだ存在している間、これらは「フォールバック」として使用されたに違いありません(Pythonがそれを行ったことに気づいていませんでした)ので、私のエラーはわかりにくくなりました。私の悪いことですが、私はいくつかの良い教訓を学びました。

于 2012-07-24T12:35:55.940 に答える
0

Django .pycファイルをクリーンアップするには、ターミナルで1つまたはすべてのコマンドを実行します。

$ python manage.py cleanup
$ pyclean .
$ find . -name "*.pyc" -exec rm -f {} \;
$ find . -name \*.pyc -delete
$ python manage.py clean_pyc
于 2018-03-02T10:37:04.653 に答える