8

我间歇性地收到此错误,但是当它发生时,我使用 Django 的 LiveServerTestCase 进行的自动集成测试突然停止并抛出以下错误:

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

一旦从任何给定的测试实例化主测试类,就会发生故障(这发生在创建内存数据库并加载我的固定装置之后)。

我的设置如下:

  • Mac OSX 雪豹
  • Django 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

对我来说,打开和关闭 WiFi 有助于 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 回答