Поздно, но может помочь кому-то, ищущему это. У меня была похожая проблема, но со словарями. Учитывая список временных диапазонов, я хотел найти перекрытия и объединить их, когда это возможно. Небольшая модификация ответа @samplebias привела меня к этому:
Функция слияния:
def merge_range(ranges: list, start_key: str, end_key: str):
ranges = sorted(ranges, key=lambda x: x[start_key])
saved = dict(ranges[0])
for range_set in sorted(ranges, key=lambda x: x[start_key]):
if range_set[start_key] <= saved[end_key]:
saved[end_key] = max(saved[end_key], range_set[end_key])
else:
yield dict(saved)
saved[start_key] = range_set[start_key]
saved[end_key] = range_set[end_key]
yield dict(saved)
Данные:
data = [
{'start_time': '09:00:00', 'end_time': '11:30:00'},
{'start_time': '15:00:00', 'end_time': '15:30:00'},
{'start_time': '11:00:00', 'end_time': '14:30:00'},
{'start_time': '09:30:00', 'end_time': '14:00:00'}
]
Исполнение:
print(list(merge_range(ranges=data, start_key='start_time', end_key='end_time')))
Вывод:
[
{'start_time': '09:00:00', 'end_time': '14:30:00'},
{'start_time': '15:00:00', 'end_time': '15:30:00'}
]
Я думаю, что mod_python ищет настройки в модуле MKSearch, которого нет в каталоге / home / user / django / MyDjangoApp. Попробуйте добавить родительский каталог в директиву PythonPath, как показано ниже:
<Location "/MyDjangoApp/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE MKSearch.settings
PythonOption django.root /MyDjangoApp
PythonPath "['/home/user/django/', '/home/user/django/MyDjangoApp,'/var/www'] + sys.path"
PythonDebug On
</Location>
Или удалите имя модуля из переменной окружения DJANGO_SETTINGS_MODULE, как показано ниже:
<Location "/MyDjangoApp/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE settings
PythonOption django.root /MyDjangoApp
PythonPath "['/home/user/django/MyDjangoApp,'/var/www'] + sys.path"
PythonDebug On
</Location>
Этот ответ для полнота - даже если ваш случай был другим.
Однажды я назвал свой проект django test
. Ну, django импортировал тест модуля python, который является модулем для регрессионного тестирования и не имеет ничего общего с моим проектом.
Эта ошибка возникает, если python находит другой модуль с тем же именем, что и ваш проект django. Назовите свой проект особым образом или добавьте путь к родительскому каталогу вашего приложения в sys.path.