etesync / etesync-dav

This is a CalDAV and CardDAV adapter for EteSync
https://www.etesync.com
GNU General Public License v3.0
293 stars 49 forks source link

Trouble with version 0.32.0+ on Manjaro #254

Closed chatumao closed 2 years ago

chatumao commented 2 years ago

Installed version 0.32.1 on Manjaro, system is up to date. Upon loading the webpage (http://localhost:37358/.web/), I get the following in the console where I executed etesync-dav from: [2022-02-12 23:49:26 +0100] [346772/Thread-2 (process_request_thread)] [ERROR] An exception occurred during GET request on '/.web/': cannot import name 'URLField' from 'wtforms' (/usr/lib/python3.10/site-packages/wtforms/init.py)

I tried debugging, but no idea what to do about the frozen file. I got it running on 0.31.2. I downloaded the downgraded versions from pip3 directly until 0.31.2, which was the first to work.

tasn commented 2 years ago

I think there is maybe a problem with some of the versions clashing. Either wtfforms or flask, or not sure what exactly. What versions of everything did you use?

chatumao commented 2 years ago

$pip install etesync-dav==0.32.1 $pip show WTForms: 2.3.3 $pip show WTForms flask: 2.0.2 $pip uninstall etesync-dav ########################## $pip install etesync-dav==0.31.2 $pip show WTForms: 2.3.3 $pip show WTForms flask: 2.0.2

Looks the same to me, are you sure its a version incompatibility?

chatumao commented 2 years ago

I inserted a debug statement in /usr/lib/python3.10/site-packages/wtforms/init.py to see the callstack, if that helps: File "/usr/lib/python3.10/threading.py", line 966, in _bootstrap self._bootstrap_inner() File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/usr/lib/python3.10/threading.py", line 946, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3.10/socketserver.py", line 683, in process_request_thread self.finish_request(request, client_address) File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/radicale_main/server.py", line 104, in finish_request return self.finish_request_locked(request, client_address) File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/radicale_main/server.py", line 98, in finish_request_locked return super().finish_request(request, client_address) File "/usr/lib/python3.10/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python3.10/socketserver.py", line 747, in __init__ self.handle() File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/radicale_main/server.py", line 210, in handle handler.run(self.server.get_app()) File "/usr/lib/python3.10/wsgiref/handlers.py", line 137, in run self.result = application(self.environ, self.start_response) File "/home/nulysses/.local/lib/python3.10/site-packages/radicale/app/__init__.py", line 105, in __call__ status_text, headers, answers = self._handle_request(environ) File "/home/nulysses/.local/lib/python3.10/site-packages/radicale/app/__init__.py", line 275, in _handle_request status, headers, answer = function( File "/home/nulysses/.local/lib/python3.10/site-packages/radicale/app/get.py", line 74, in do_GET return self._web.get(environ, base_prefix, path, user) File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/radicale/web.py", line 42, in get return self._call(environ, base_prefix, path, user) File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/radicale/web.py", line 28, in _call from etesync_dav.webui import app File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/nulysses/.local/lib/python3.10/site-packages/etesync_dav/webui.py", line 21, in <module> from flask_wtf import FlaskForm File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/nulysses/.local/lib/python3.10/site-packages/flask_wtf/__init__.py", line 1, in <module> from .csrf import CSRFProtect, CsrfProtect File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/nulysses/.local/lib/python3.10/site-packages/flask_wtf/csrf.py", line 12, in <module> from wtforms import ValidationError File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/lib/python3.10/site-packages/wtforms/__init__.py", line 16, in <module> for line in traceback.format_stack(): [2022-02-13 13:04:05 +0100] [790847/Thread-1 (process_request_thread)] [ERROR] An exception occurred during GET request on '/.web/login/': cannot import name 'URLField' from 'wtforms' (/usr/lib/python3.10/site-packages/wtforms/__init__.py)

tasn commented 2 years ago

That's maybe the problem, it shouldn't be the same... I think the newer version requires newer versions of wtforms. I don't know why it didn't upgrade those too.

chatumao commented 2 years ago

I uninstalled wtforms and reinstalled, now I have the latest version and all works, so it seems. Thanks for your help and time!

tasn commented 2 years ago

Great to hear!

AckslD commented 2 years ago

I had the same issue, uninstalling and installing wtforms again gave:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
etesync-dav 0.32.1 requires Flask-WTF<1.0.0,>=0.14.2, but you have flask-wtf 1.0.0 which is incompatible.

but etesync-dav now works again