4

そこで、Ubuntu で virtualenv をセットアップし、すべてをインストールして、開発サイトを .NET で実行しましrunserverた。私自身の単体テストはすべてパスしましたが、Django パッケージの単体テストの多くはパスしませんでした。

そこで、私が行っgit bisectた最も初期のコミットをチェックして、これを理解しようとしました。開発環境がさまざまなデータベース エンジンやパッケージなどを使用していて、もちろんサイトが実行できなかった時代にさかのぼります。次に、失敗した Django 単体テストよりも重要なことに取り組むことにしました (自分の単体テストが機能していたため)。そこで、開発ブランチの最新のコミットに戻りました。

もう一度起動しましrunserverたが、今度はホームページをリロードすると、次のエラーが表示されました。

Traceback:
File "...venv.../local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  298.             for pattern in self.url_patterns:
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  328.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  323.             self._urlconf_module = import_module(self.urlconf_name)
File "...venv.../local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "...project dir.../myproject/urls.py" in <module>
  2. import frontpage.views

Exception Type: ImportError at /
Exception Value: No module named views

git bisect を試す前は、すべて問題なく動作していました。しかし、少なくとも私のローカルマシンではそうではありません。

だから私はググって、私のROOT_URLCONFfrom'myproject.urls'を just に変更しました'urls'。今、私はこのエラーメッセージを受け取ります:

Traceback:
File "...venv.../local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  298.             for pattern in self.url_patterns:
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  328.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  323.             self._urlconf_module = import_module(self.urlconf_name)
File "...venv.../local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)

Exception Type: ImportError at /
Exception Value: No module named urls

私はもう少しグーグルで検索し、おそらく私のPythonパスには私のプロジェクトディレクトリが含まれていなかったと思いました...しかし、いいえ、プロジェクトのファイルにaを含めたときは完全に含まprint sys.pathれています!settings.py

では、ここで何が問題なのですか?私はDjango 1.4.3を使用しており、を使用してサーバーを起動していますpython manage.py runserver。私は自分のウェブサイトがほんの数時間前に機能していたことを誓います.それ以来git checkout developmentgit reset何度も. 私はまだ同じエラーが発生しています。

(また、virtualenvをアクティブにしました。念のため、再起動も試みました...これまでのところ運が悪いです)

アップデート

Lennart の提案に従って、失敗したインポートの直前にデバッガーを開始し、それが機能することを発見しましたがimport frontpage、、、またはその他のものは機能しimport frontpage.viewsませfrontpage.testsんでした。__init__.pyディレクトリにもファイルがありますfrontpage。この時点で、sys.path私のプロジェクト フォルダがすべて含まれています...

私はすでに私のものにも含めていfrontpageますINSTALLED_APPS

修繕

Lennart のおかげで、frontpageモジュールが実際に正しくインポートされていることを確認しました。正しい.pycファイルが表示されましたが、pyc ファイルが何らかの形で実際のコードと同期していないのではないかと思いました。

だから私はすべてのpycファイルを削除し、サーバーを再起動しました、そしてすべてが再び正常に動作しています:)

4

1 に答える 1

3

インポートしようとしているモジュールで問題が発生したために、ImportErrorsが発生することがあります。たとえばfrontpage.view、SyntaxErrorを持つモジュールをインポートしようとしている可能性があります。何が起こっているのかを正確に把握するための最良の方法はimport pdb;pdb.set_trace()、失敗したインポートの直前に配置sし、インポート内を操作することです。

また、インポートfrontpageするときに、期待どおりのモジュールが返されることを確認し、特にmodules__file__属性を確認し、それが__init__.pyc期待どおりであることを確認してください。

于 2013-01-23T06:32:22.183 に答える