How to change Python version to a specific one like 3.7?

I’ve tried to build a SnapCraft package on core18, but I get an error:

ERROR: Could not find a version that satisfies the requirement requests==2.31.0 (from catalyst-live) (from versions: 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.6, 0.10.7, 0.10.8, 0.11.1, 0.11.2, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.13.2, 0.13.3, 0.13.4, 0.13.5, 0.13.6, 0.13.7, 0.13.8, 0.13.9, 0.14.0, 0.14.1, 0.14.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 2.0.0, 2.0.1, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.7.0, 2.8.0, 2.8.1, 2.9.0, 2.9.1, 2.9.2, 2.10.0, 2.11.0, 2.11.1, 2.12.0, 2.12.1, 2.12.2, 2.12.3, 2.12.4, 2.12.5, 2.13.0, 2.14.0, 2.14.1, 2.14.2, 2.15.1, 2.16.0, 2.16.1, 2.16.2, 2.16.3, 2.16.4, 2.16.5, 2.17.0, 2.17.1, 2.17.2, 2.17.3, 2.18.0, 2.18.1, 2.18.2, 2.18.3, 2.18.4, 2.19.0, 2.19.1, 2.20.0, 2.20.1, 2.21.0, 2.22.0, 2.23.0, 2.24.0, 2.25.0, 2.25.1, 2.26.0, 2.27.0, 2.27.1)
ERROR: No matching distribution found for requests==2.31.0
Failed to run '/home/Project/stage/usr/bin/python3 -m pip install --user --no-compile --find-links /home/Project/parts/live/python-packages .': Exited with code 1.

This is a part that I have in the snapcraft.yaml:

  live:
    plugin: python
    source: .

From what I understand it’s because SnapCraft uses Python 3.6 and the requests 2.31.0 package requires Python 3.7 to work. How can I fix this problem? I can’t build under other cores that core18 because of another issue, but that’s another story.

Core18 is soon going to be EOL, try to use core22(Best option) or you can try core20 also, but as i see you cannot use other core then core18 so you can try to use deadsnakes ppa by deadsnakes team in your yaml to supply latest python3 version see → https://snapcraft.io/docs/package-repositories to understand how to use ppa in snap yaml, i cant guarantee it will work but you can still try it.

P.S. You may have to use build-environment to tweak the build-system python preference (Not sure on this :confused:)

1 Like

Note that the core snaps have all 10y of support by default, so the snaps themselves do not really go EOL…

snapcraft on the other hand will drop support for building core18 based snaps with one of the next releases (which you can work around by switching to an older snapcraft channel of the snapcraft snap, but the archives for 18.04 will also go away soon, you would need a paid ubuntu pro subscription to keep building from them)

1 Like