Перейти к основному содержанию

Seafile — No module named 'pyasn1'

Seafile

Обновил операционную систему Ubuntu 22.04 с установленным Seafile. Перезагружаю, а служба seahub не стартует. В логах ничего нет.

░░ Начат процесс запуска юнита seahub.service.
янв 06 13:53:46 ilab00 seahub.sh[1580]: Starting seahub at port 8000 ...
янв 06 13:53:47 ilab00 python3[1595]: 2025-01-06 13:53:47,546 [DEBUG] root:102 is_cluster_mode cluster mode is disabled
янв 06 13:53:47 ilab00 python3[1595]: 2025-01-06 13:53:47,553 [INFO] seafevents.db:69 create_engine_from_conf [seafevents] database: mysql, name: seafile-seahub
янв 06 13:53:47 ilab00 python3[1595]: 2025-01-06 13:53:47,596 [DEBUG] root:1095 check_file_audit_enabled file audit: not enabled
янв 06 13:53:47 ilab00 python3[1595]: 2025-01-06 13:53:47,596 [DEBUG] root:1184 check_search_enabled search: not enabled
янв 06 13:53:47 ilab00 python3[1595]: 2025-01-06 13:53:47,596 [DEBUG] root:1199 check_repo_auto_del_enabled search: not enabled
янв 06 13:53:51 ilab00 seahub.sh[1580]: Error:Seahub failed to start.
янв 06 13:53:51 ilab00 seahub.sh[1580]: Please try to run "./seahub.sh start" again
янв 06 13:53:51 ilab00 systemd[1]: seahub.service: Control process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit seahub.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
янв 06 13:53:51 ilab00 systemd[1]: seahub.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit seahub.service has entered the 'failed' state with result 'exit-code'.
янв 06 13:53:51 ilab00 systemd[1]: Failed to start Seafile hub.
░░ Subject: Ошибка юнита seahub.service
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ Произошел сбой юнита seahub.service.
░░
░░ Результат: failed.
янв 06 13:53:51 ilab00 systemd[1]: seahub.service: Consumed 1.436s CPU time.
░░ Subject: Потребленные юнитом ресурсы
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ Юнит seahub.service завершен. Приводится статистика по потребленным им ресурсам.

Просто сбой и всё. Попробовал включить расширенное логирование. В seahub_settings.py добавляю:

LOGGING = {
   'version': 1,
   'disable_existing_loggers': False,
   'formatters': {
       'verbose': {
           'format': '%(process)-5d %(thread)d %(name)-50s %(levelname)-8s %(message)s'
       },
       'standard': {
           'format': '%(asctime)s [%(levelname)s] %(name)s:%(lineno)s %(funcName)s %(message)s'
       },
       'simple': {
           'format': '[%(asctime)s] %(name)s %(levelname)s %(message)s',
           'datefmt': '%d/%b/%Y %H:%M:%S'
       },
   },
   'filters': {
       'require_debug_false': {
           '()': 'django.utils.log.RequireDebugFalse',
       },
       'require_debug_true': {
           '()': 'django.utils.log.RequireDebugTrue',
       },
   },
   'handlers': {
       'console': {
           'filters': ['require_debug_true'],
           'class': 'logging.StreamHandler',
           'formatter': 'simple'
       },
       'syslog': {
           'class': 'logging.handlers.SysLogHandler',
           'address': '/dev/log',
           'formatter': 'standard'
       },
   },
   'loggers': {
       # root logger
       # All logs printed by Seahub and any third party libraries will be handled by this logger.
       '': {
           'handlers': ['console', 'syslog'],
           'level': 'DEBUG', # Logs when log level is higher than info. Level can be any one of DEBUG, INFO, WARNING, ERROR, CRITICAL.
           'disabled': False
       },
       # This logger recorded logs printed by Django Framework. For example, when you see 5xx page error, you should check the logs recorded by this logger.
       'django.request': {
           'handlers': ['console', 'syslog'],
           'level': 'DEBUG',
           'propagate': False,
       },
   },
}

Сначала в логах ничего нет. Потом вижу в файле file_updates_sender.log:

ModuleNotFoundError: No module named 'pyasn1'

PyASN1 — это библиотека для Python, которая реализует поддержку ASN.1. Она поддерживает все типы и правила кодирования, определённые в стандарте ASN.1. 

Не знаю что там произошло при обновлении, даже в логи не полез. Ставлю библиотеку:

pip3 install pyasn1_modules
Collecting pyasn1_modules
 Downloading pyasn1_modules-0.4.1-py3-none-any.whl (181 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 181.5/181.5 KB 1.2 MB/s eta 0:00:00
Collecting pyasn1<0.7.0,>=0.4.6
 Downloading pyasn1-0.6.1-py3-none-any.whl (83 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.1/83.1 KB 5.1 MB/s eta 0:00:00
Installing collected packages: pyasn1, pyasn1_modules
Successfully installed pyasn1-0.6.1 pyasn1_modules-0.4.1

После этого seahub запустился. И что это было? Вероятно, при обновлении модуль питона тоже зацепило, что можно проверить:

cat /var/log/apt/history.log | grep pyasn1

И таки-да. Не все обновления одинаково полезны.

seafile

Вероятно, данный модуль нужно добавить в инструкцию по установке Seafile.

Теги

 

Похожие материалы

Seafile 9 — подготовка к переходу на версию 10

Есть у меня на поддержке несколько серверов Seafile. Недавно готовился к переходу на новую мажорную версию с 9 на 10, наступил на много граблей. Одной из проблем стало то, что Seafile 10 уже не хочет просто так работать в Ubuntu 18.

Теги

Seafile — личное хранилище

Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке. Бесплатен.