Following Python virtual environment section results in non-usable etesync-dav

Open Beginner friendly
#376 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
64/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
backend, databases

Research direction

Start by comparing the documented virtual environment install commands with requirements.txt and the package dependency metadata, then check how the project installs Peewee. Confirm whether a fresh environment installs Peewee 4 despite the pinned version in requirements.txt, and identify the smallest fix that makes the documented installation use a compatible version. Done means the documented commands produce an installation that can import SqliteExtDatabase.

Written by the indexing model from the issue text.

Description

In section Python virtual environment (Linux, BSD and Mac), the installation instructions are :

virtualenv -p python3 venv
source venv/bin/activate
pip install etesync-dav

But doing this at the moment will result in the following

$ virtualenv -p python3 venv
created virtual environment CPython3.12.15.final.0-64-x86_64 in 159ms
  creator CPython3Posix(dest=/tmp/venv, clear=False, no_vcs_ignore=False, venv_redirect=None, global=False)
  seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/pat/.cache/virtualenv)
    added seed packages: pip==26.2.2
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator,XonshActivator
$ venv/bin/pip install etesync-dav
Collecting etesync-dav
  Downloading etesync_dav-0.33.4.tar.gz (55 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
[...]
Downloading orderedmultidict-1.0.2-py2.py3-none-any.whl (11 kB)
Using cached packaging-26.3-py3-none-any.whl (129 kB)
Downloading peewee-4.5.3-py3-none-any.whl (194 kB)

As you see, this is pulling peewee-4.5.3, when the requirements.txt file mentions peewee==3.14.8.

The problem is that, with peewee in version > 4.0, there are issues with the use of SqliteExtDatabase as they appear in this log message.

[2026-11-12 17:44:39 +0100] [11004/Thread-9 (process_request_thread)] [ERROR] An exception occurred during PROPFIND request on '/ptoret/1AqQIDFUjPMsR6Caxmxp1u_LlDZ7XBOq/': cannot import name 'SqliteExtDatabase' from 'playhouse.sqlite_ext' (/home/pat/Code/etesync-dav/venv/lib/python3.12/site-packages/playhouse/sqlite_ext.py)

This is documented in https://github.com/coleifer/peewee/issues/3041.

Maybe something like https://github.com/ActivityWatch/aw-core/pull/133/changes/40508b9f6ed0e0a4f6ffb0a22b27158a6d333510 could be used to avoid having this kind of errors ?

Meanwhile, what seems to work is to do venv/bin/pip install -r requirements.txt right before venv/bin/pip install etesync-dav. In that case I end up with peewee-3.14.8.

Not sure what is the best way to solve this.

Dominant language
Python
Stars
332
Forks
61
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from etesync/etesync-dav

All issues in etesync/etesync-dav

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.