gpt4 book ai didi

django - Django包的间歇性ImportError

转载 作者:行者123 更新时间:2023-12-04 04:17:47 24 4
gpt4 key购买 nike

我在 Python 2.7.6 中运行的 Django 1.4 项目中有以下导入行:
from django.contrib.gis.utils import GeoIP
这条线在生产和开发中 100% 的时间都可以正常工作,但是这条线在测试中会出现 ImportError 失败——有时。给定以下虚拟测试:

from django.test import TestCase
from django.test.client import Client

class DummyTestCase(TestCase):
def test_GET_200_response_code(self):
c = Client()
response = c.get('/')
self.assertEqual(response.status_code, 200)

如果我只运行这个模块中的测试,它会在 response = self.c.get('/') 上失败。线:
...
File "...", line 19, in <module>
from django.contrib.gis.utils import GeoIP
ImportError: cannot import name GeoIP

然而当我运行整个测试套件时,包括这个相同的测试,它没有问题地通过。而且,导入在控制台中以及在开发和生产的服务器中都可以正常工作。

那么……为什么会这样?为什么我只会在运行这个单个测试模块时得到一个 ImportError ,而不是其他情况,即使我运行了包括这个模块在内的所有测试?

注意:我现在使用的是 Django 1.4。我知道导入路径发生了变化,将是 from django.contrib.gis.geoip import GeoIP ,但是 utils 的快捷方式在 1.4 中仍然存在,直到 1.6。无论哪种方式,切换导入路径都展示了与上述相同的行为。

最佳答案

我想这是你的 answer ,看起来从 django 1.4 开始它在不同的包中:django.contrib.gis.geoipdjango.contrib.gis.utils快捷方式已在 django 1.6 中删除,因此我建议在测试服务器上调查 django 版本。首先尝试将导入更改为 django.contrib.gis.geoip如果使用 django>=1.4,那么您就不必进行任何调查。

关于django - Django包的间歇性ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com