Can't start seafdav on python3: ImportError: cannot import name 'collections_abc'
MurzNN opened this issue · comments
Before this error, seafdav not starting without any error in log file, because of missing wsgidav
package, if I start manually via /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile-server/logs/seafdav.log --pid /opt/seafile-server/pids/seafdav.pid --port 8080 --host 0.0.0.0
- it show the error:
/usr/bin/python3: Error while finding module specification for 'wsgidav.server.server_cli' (ModuleNotFoundError: No module named 'wsgidav')
After installing via pip3 install wsgidav
- it shows other error:
$ /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile-server/logs/seafdav.log --pid /opt/seafile-server/pids/seafdav.pid --port 8080 --host 0.0.0.0
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.6/dist-packages/wsgidav/server/server_cli.py", line 38, in <module>
from wsgidav import __version__, util
File "/usr/local/lib/python3.6/dist-packages/wsgidav/util.py", line 12, in <module>
from wsgidav import compat
File "/usr/local/lib/python3.6/dist-packages/wsgidav/compat.py", line 15, in <module>
from six.moves import (
ImportError: cannot import name 'collections_abc'
How can i fix it?
Do you use our official package?
Yes, downloaded from official server without any modification, version is seafile-server-7.1.1
, OS - Ubuntu 18.04
seems here mar10/wsgidav@2b5e5b1 1 is patch for fix this error?
After upgrading six
and tox
packages to versions, mentioned in this patch (pip3 install six==1.13 tox=3.13
) - I got other error:
$ /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile-server/logs/seafdav.log --pid /opt/seafile-server/pids/seafdav.pid --port 8080 --host 0.0.0.0
usage: wsgidav [-h] [-p PORT] [-H HOST] [-r ROOT_PATH]
[--auth {anonymous,nt,pam-login}]
[--server {paste,gevent,cheroot,cherrypy,ext-wsgiutils,flup-fcgi,flup-fcgi_fork,wsgiref}]
[--ssl-adapter {builtin,pyopenssl}] [-v | -q]
[-c CONFIG_FILE | --no-config] [-V]
wsgidav: error: argument --server: invalid choice: 'gunicorn' (choose from 'paste', 'gevent', 'cheroot', 'cherrypy', 'ext-wsgiutils', 'flup-fcgi', 'flup-fcgi_fork', 'wsgiref')
We tested in our environment. And it works. You should not use pip to install wsgidav. Seafile includes a modified version of wsgidav (seafdav) in the package. Just follow our manual to start the webdav service. https://download.seafile.com/published/seafile-manual/extension/webdav.md
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
Thank you for your contributions.