Installation

Python 3.10 or newer is required.

Development install

git clone https://github.com/zlatanstajic/python_scripts.git
cd python_scripts
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
python -m playwright install chromium
cp .env.example .env

The editable install puts three commands on the PATH of the activated environment:

which cv-generator
which website-screenshot
which media-organizer

Source edits under scripts/ take effect immediately for those commands. Command names come from [project.scripts] in pyproject.toml and are packaging metadata, so a new or renamed command appears only after re-running python -m pip install -e ".[dev]".

Optional user-level install with pipx

pipx install . installs the same three commands into an isolated environment that never needs activating. It suits cv-generator, which requires only the WeasyPrint system libraries.

Neither pip nor pipx ever installs the Chromium binary that website-screenshot drives; only python -m playwright install chromium, run with the interpreter of the environment holding the command, does. That step is not verified for a pipx-managed environment here, so use the virtual environment described above when you need website-screenshot.

System requirements

WeasyPrint also requires platform libraries supplied by the operating system. Consult the WeasyPrint installation guide for the packages appropriate to your platform. Playwright’s Chromium installation is required only for screenshots.

The media organizer requires ffprobe and ffmpeg, both normally installed as part of FFmpeg; duplicates and review-duplicates use ffmpeg to decode frames and render previews. ExifTool is optional but recommended for richer photo, smartphone, and camcorder metadata. None of these tools is installed by pip.