Ошибка Mod_python: ImportError: не Мог импортировать настройки

Поздно, но может помочь кому-то, ищущему это. У меня была похожая проблема, но со словарями. Учитывая список временных диапазонов, я хотел найти перекрытия и объединить их, когда это возможно. Небольшая модификация ответа @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'}
]
6
задан Bart 29 January 2013 в 19:42
поделиться

2 ответа

Я думаю, что 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>
11
ответ дан 8 December 2019 в 18:40
поделиться

Этот ответ для полнота - даже если ваш случай был другим.

Однажды я назвал свой проект django test . Ну, django импортировал тест модуля python, который является модулем для регрессионного тестирования и не имеет ничего общего с моим проектом.

Эта ошибка возникает, если python находит другой модуль с тем же именем, что и ваш проект django. Назовите свой проект особым образом или добавьте путь к родительскому каталогу вашего приложения в sys.path.

3
ответ дан 8 December 2019 в 18:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: