8

このエラーは断続的に発生しますが、Django の LiveServerTestCase を使用した自動統合テストが発生すると、次のエラーがスローされて停止します。

WSGIServerException: [Errno 8] nodename nor servname provided, or not known

失敗は、メインのテスト クラスが特定のテストからインスタンス化されるとすぐに発生します (これは、インメモリ データベースが作成され、フィクスチャが読み込まれた後に発生します)。

私のセットアップは次のとおりです。

  • Mac OSX ユキヒョウ
  • ジャンゴ 1.4.1
  • 仮想環境 (すべての Python ライブラリを収容)
  • sqlite (テスト用) MySQL/InnoDB 本番用
  • ローカル Git ブランチ ハウジング コード

これまでのところ、このエラーはオフィスの LAN でテストしているときにのみ発生します。自宅ではテストは問題なく実行されますが、しばらくの間、私の職場ではテストが問題なく実行されるため、断続的なフラストレーションが発生します。

トラブルシューティングの流れとして、新しい virtualenv を作成し、システム全体のすべての .pyc ファイルを削除し、ソースから MySQL と必要なすべてのライブラリを再インストールしました。

誰かがこのエラーに遭遇し、それを打ち負かす方法を知っている場合は、共有してください.

ありがとう

4

4 に答える 4

9

ネットワークの問題である可能性があるようです。一貫したインターネット接続があること (テストの実行中に適切なサーバーに継続的に ping を実行するなど) を確認し、DNS サーバーが一貫して結果を報告していること (ランダムにリクエストをドロップしたりタイムアウトしたりしないなど) を確認します。

アドレス ルックアップを実行する必要がないように、ライブ サーバー アドレスをそのままの IP アドレスに変更することもできます (たとえば、localhost を 127.0.0.1 に変更します)。

于 2012-08-24T02:23:10.937 に答える
5

私にとっては、Wi-Fi のオンとオフを再度切り替えると、Max OS X Yosemite で役に立ちました。

于 2015-03-03T10:59:58.740 に答える
4

/etc/hostsこの行を次のように変更して、この問題を解決しました。

# 127.0.0.1 localhost

127.0.0.1 localhost

なぜその行がコメントアウトされたのかわかりません。

于 2016-07-31T10:07:33.877 に答える
0

私の場合、ローカルの Django サーバーを次のように起動しました。

./manage.py runserver silberpfeil.local:8000

数秒後、エラーが発生しました:

Error: [Errno 8] nodename nor servname provided, or not known

「共有ポイント」の下の設定で、Mac OS X が何らかの形でコンピューター名を silberpfeil-2.local に変更したように見えることがわかりました。

ここに画像の説明を入力

したがって、今すぐこのコマンドを実行するか、ホスト名を変更する必要があります。

./manage.py runserver silberpfeil-2.local:8000
于 2014-05-05T11:32:28.343 に答える