Skip to content

[Q] Issues with Python 3.10 whitenoise 4 and Graphite Web 1.1.10 #2791

@nook24

Description

@nook24

I'm running Graphite Web within a Docker Container. For this I have build my own Docker image. All related files can be found here: https://github.com/it-novum/graphing-docker/tree/master/graphite-web

Unfortunately I'm unable to run the latest version Graphite Web 1.1.10. Depending on what I try, i get different error messages, so I'm sorry upfront for the long issue text :)

First things first. Everything is working fine as long as I go with Python 3.8 and Graphite Web 1.1.6.
So this works without any issues:

  • Graphite Web: 1.1.6
  • Alpine Linux: 3.13
  • Python: 3.8.15
    • whitenoise 3.3.1
    • django 2.2.28

In the next step I tried to install Graphite Web 1.1.10. This fails due to a wrong WhiteNoise configuration:

  • Graphite Web: 1.1.10
  • Alpine Linux: 3.13
  • Python: 3.8.15
    • whitenoise 4.1.4 (as requirements.txt wants it)
    • django 3.0.14
Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
This can be fixed by following the upgrade instructions at:
http://whitenoise.evans.io/en/stable/changelog.html#v4-0

Due to i did not want to use an old Alpine Linux anyway, i decided to check what happens with the latest version. This is where the fun starts.

  • Graphite Web: 1.1.10
  • Alpine Linux: 3.17 (latest)
  • Python: 3.10.8
    • whitenoise 4.1.4
    • django 3.0.14

If I run the install using Python 3.10 (and ignoring all deprecation warnings pip3 prints) , I get the exact same error as with Python 3.8:

Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
This can be fixed by following the upgrade instructions at:
http://whitenoise.evans.io/en/stable/changelog.html#v4-0

If i add the --use-pep517 option to the pip3 install command to resolve warinigs like this

  DEPRECATION: whitenoise is being installed using the legacy 'setup.py install' method, because the '--no-binary' option was enabled for it and this currently disables local wheel building for projects that don't have a 'pyproject.toml' file. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/11451

I end up with this error message ModuleNotFoundError: No module named 'graphite.settings' and most of the Graphite related files are missing:

/ # ls -la /opt/graphite/
total 0
drwxr-xr-x    1 root     root            29 Dec  8 14:03 .
drwxr-xr-x    1 root     root            22 Dec  8 14:02 ..
drwxr-xr-x    1 root     root            25 Dec  8 14:03 conf
drwxr-xr-x    3 root     root            21 Dec  8 14:03 lib
drwxr-xr-x    1 root     root            22 Dec  8 14:02 webapp

For comparison the working installation using Graphite 1.1.6 and Python 3.8

/ # ls -la /opt/graphite/
total 4
drwxr-xr-x    1 root     root            20 Dec  8 11:55 .
drwxr-xr-x    1 root     root            22 Dec  8 11:55 ..
drwxr-xr-x    2 root     root          4096 Dec  8 11:55 bin
drwxr-xr-x    1 root     root            21 Dec  8 11:55 conf
drwxr-xr-x    3 root     root            80 Dec  8 11:55 examples
drwxr-xr-x    5 root     root            70 Dec  8 11:55 lib
drwxr-xr-x    7 root     root            69 Dec  8 11:55 storage
drwxr-xr-x    1 root     root            22 Dec  8 11:55 webapp

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions