У меня есть следующие строки импорта в проект Django 1.4 работает в Python 2.7.6:перемежающейся ImportError с пакетом Джанго
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
Однако, когда я запустить весь набор тестов, в том числе это тот же тест, он проходит без проблем. И, опять же, импорт отлично работает в консоли, а также на сервере в dev и production.
Итак ... почему это происходит? Почему я должен получить ImportError только при запуске этого единственного тестового модуля и никогда иначе, даже если я буду запускать все тесты, включая этот модуль?
Примечание: Я использую Django 1.4 прямо сейчас. Я знаю, что путь импорта изменяется и будет from django.contrib.gis.geoip import GeoIP
, но ярлык от utils все еще существует в 1.4, до 1.6. В любом случае, переключение пути импорта демонстрирует такое же поведение, как описано выше.
См. Мою заметку в нижней части моего первоначального сообщения. Старый путь импорта по-прежнему работает в 1.4, и даже его изменение не решает эту проблему. – ryanmrubin