Unable to create new scraper with python

I’m having trouble figuring out which version of python I can use when creating a new scraper. I’ve walked through the new scraper wizard, and have a template python scraper in my repository. I changed the python version in runtime.txt to 3.11.2, which is what I happened to have on my debian bookworm desktop, submitted it with the morph cli, and got an error about incompatible version.

; morph         
Uploading 1.50 KiB...
Injecting configuration and compiling...
-----> Python app detected
       !     The latest version of Python 3 is python-3.6.2 (you are using python-3.11.2, which is unsupported).
       !     We recommend upgrading by specifying the latest version (python-3.6.2).
       Learn More: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.11.2
       !     Requested runtime (python-3.11.2) is not available for this stack (cedar-14).
       !     Aborting.  More info: https://devcenter.heroku.com/articles/python-support

Fair enough. So I changed the python version in runtime.txt to the version suggested, unfortunately this isn’t working either.

; morph         
Uploading 1.50 KiB...
Injecting configuration and compiling...
-----> Python app detected
-----> Installing python-3.6.2
       !     Requested runtime (python-3.6.2) is not available for this stack (cedar-14).
       !     Aborting.  More info: https://devcenter.heroku.com/articles/python-support

I’ve also attempted this with the 2.7 python version in the template, being told I need to use 2.7.14 and then that the python-2.7.14 runtime isn’t available.

What am I doing wrong here? What do I need to do to get a working python runtime?

I think I’ve answered my own question, by eventually finding a functional python scraper and looking at what it was doing*. Here’s what’s working for me now:

  • Create a file named platform in the repository root, containing the word early_release. This ensures you’re running on the most recent platform morph supports, heroku-18.
  • Set the python version in runtime.txt to python-3.6.2
  • Add these required packages to requirements.txt. I know pandas and numpy are definitely required, morph will fail to start the scraper without them. I haven’t tried without the others as I intend to use them. :wink:
pandas==0.23.0
numpy==1.14.3
beautifulsoup4==4.6.0
requests==2.18.4

I’ve also found that testing by running the morph CLI doesn’t work for me, it doesn’t seem to read the platform file. You’ll have to commit and push these changes and then do a manual run in the morph UI. But at this point it should be running - the default scraper.py still fails because it doesn’t create the data.sqlite file. But it’s progress. I guess moving forward I’ll be testing my code in a venv.

* GitHub - ufcmmaapp/scrape_ufc_mma_fights_data: The fights from UFC. , for what it’s worth. Thanks, kind MMA fan.

OK, so I’m still having a lot of trouble with this. Trying to make any changes at all to the requirements results in not being able to find the runtime. Any changes at all. If I copy the requirements.txt from the original repo it works. If I remove the comments from that file it does not.

I did find another functioning python scraper, this one specifies heroku-18 for the platform, and has enough modules in its requirements that I can write useful code. So I’ll continue with this for now.

But I’m seriously stumped about how all of this could be so brittle.

1 Like

Same here, none of my scrapers is working, due to versions. Switched and followed your advice but can’t figure out.
Is Morph.io still a running project? Any support? Did you figure out your issues?

same problem. can’t get any version of python 2 or 3 to work.

Someone is working on a new platform so python should work then - I also could not get python working on heroku-18 platform (which is the latest)

As of now, April 2026, it seems that there is no existing combination anymore for python which works. I also checked the list of active scrapers, there’s not even one which is working right now.

It seems that there are very old (frozen) versions of heraku-18 and heraku-24 (called early_release) which (my guess) have a whitelist of supported python version which are now all end-of-life.

Opinion from Claude.ai about platform early_release:

From your logs, something can be deduced:
When you specify python-3.12 (without patch), morph.io resolves it to 3.12.7 — that was Heroku’s default version in autumn 2024. This means the buildstep image was frozen sometime in late 2024 and only knows the versions from that point in time.
So try exactly these versions, which were current in autumn 2024:
python-3.12.7, python-3.11.10, python-3.10.15, python-3.13.0
If none of these work, the morph.io early_release buildpack is simply broken/inconsistent — and it might be worth opening an issue directly on help.morph.io. It’s a small open-source project (OpenAustralia Foundation) and Python version problems are exactly the kind of bug they appreciate being reported.

Opinion from Claude.ai about platform heroku-18:

At this point it’s clear that nothing works reliably on either platform. The morph.io buildstep images are badly out of sync with both the old and new Heroku buildpacks.
I’d suggest two things:

  1. Try without any runtime.txt at all — let morph.io pick whatever default it has baked in. That’s the version most likely to actually be available in the frozen image.
  2. Open an issue on help.morph.io — this is clearly a platform-level bug, not something you can fix by guessing version numbers. The maintainers need to know.
    What does your scraper actually require? If it’s fairly standard Python 3, the default version (whatever it is) might just work fine for your code even if you can’t control which exact version it is.

Here is my full list of tests (test combinations):
(the requirements.txt or code were never a matter, the issue stops before)

[main-python-2026 ac1290f] platform early_release runtime.txt python-3.14.3

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.14.3 specified in runtime.txt
[91m
[1;31m ! Error: The requested Python version isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! The requested Python version 3.14 isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Check that this Python version has been officially released,[0m
[0m [91m[1;31m ! and that the Python buildpack has added support for it:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[0m [91m[1;31m ! If it has, make sure that you are using the latest version[0m
[1;31m ! of this buildpack:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[1;31m ! Otherwise, switch to a supported version (such as Python 3.12)[0m
[0m [91m[1;31m ! by updating the version configured via the ‘runtime.txt’ file.[0m

[0m

[main-python-2026 ac1290f] Try platform early_release runtime.txt python-3.12.3

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12.3 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.3 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 ac1290f] Try platform early_release runtime.txt python-3.12

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.7 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 bbe8dee] Try platform early_release runtime.txt python-3.12.12

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12.12 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.12 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 e48e26d] Try platform early_release runtime.txt python-3.13.8

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.13.8 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.13.8 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 89ff83c] Try platform early_release runtime.txt python-3.11

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.10 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 13c360f] Try platform early_release runtime.txt python-3.11.15

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11.15 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.15 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 45d0452] Try platform early_release runtime.txt python-3.11.9

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11.9 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.9 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 6575f46] Try platform early_release runtime.txt python-3.11.5

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11.5 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.5 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 96df948] Try platform early_release runtime.txt python-3.11.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 92ef743] Try platform early_release runtime.txt python-3.10.20

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.10.20 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.10.20 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 5689ecb] Try platform early_release runtime.txt python-3.12.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 eac2f79] Try platform early_release runtime.txt python-3.12.13

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12.13 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.13 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 d8c5fa1] Try platform early_release runtime.txt python-3.13.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.13.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.13.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 fba77ee] Try platform early_release runtime.txt python-3.13.12

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.13.12 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: Python 3.13.12 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 eb65b25] Try platform early_release runtime.txt python-3.14.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.14.0 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: The requested Python version isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! The requested Python version 3.14 isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Check that this Python version has been officially released,[0m
[0m [91m[1;31m ! and that the Python buildpack has added support for it:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[0m [91m[1;31m ! If it has, make sure that you are using the latest version[0m
[0m [91m[1;31m ! of this buildpack:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[0m [91m[1;31m ! Otherwise, switch to a supported version (such as Python 3.12)[0m
[0m [91m[1;31m ! by updating the version configured via the ‘runtime.txt’ file.[0m

[0m

[main-python-2026 a625d1c] Try platform early_release runtime.txt python-3.14.3

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.14.3 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: The requested Python version isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! The requested Python version 3.14 isn’t recognised.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Check that this Python version has been officially released,[0m
[1;31m ! and that the Python buildpack has added support for it:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[0m [91m[1;31m ! If it has, make sure that you are using the latest version[0m
[1;31m ! of this buildpack:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[1;31m ! [0m
[0m [91m[1;31m ! Otherwise, switch to a supported version (such as Python 3.12)[0m
[0m [91m[1;31m ! by updating the version configured via the ‘runtime.txt’ file.[0m

[0m

[main-python-2026 9a26ae4] Try platform early_release runtime.txt python-3.13.4

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.13.4 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.13.4 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 6413887] Try platform early_release runtime.txt python-3.12.7

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.12.7 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.12.7 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 75c03a4] Try platform early_release runtime.txt python-3.11.10

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.11.10 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.11.10 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 a0e2466] Try platform early_release runtime.txt python-3.10.15

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.10.15 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.10.15 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 3ea7d72] Try platform early_release runtime.txt python-3.13.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.13.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.13.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 c257a0c] Try platform early_release runtime.txt python-3.6.2

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.6.2 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: The requested Python version has reached end-of-life.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Python 3.6 has reached its upstream end-of-life, and is[0m
[0m [91m[1;31m ! therefore no longer receiving security updates:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[0m [91m[1;31m ! [0m
[0m [91m[1;31m ! As such, it is no longer supported by this buildpack.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Please upgrade to a newer Python version by updating the[0m
[0m [91m[1;31m ! version configured via the ‘runtime.txt’ file.[0m
[0m [91m[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m
[0m [91m
[0m

[main-python-2026 5562675] Try platform early_release runtime.txt python-3.6.3

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.6.3 specified in runtime.txt
[91m
[1;31m ! Error: The requested Python version has reached end-of-life.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Python 3.6 has reached its upstream end-of-life, and is[0m
[1;31m ! therefore no longer receiving security updates:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[1;31m ! [0m
[0m [91m[1;31m ! As such, it is no longer supported by this buildpack.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Please upgrade to a newer Python version by updating the[0m
[0m [91m[1;31m ! version configured via the ‘runtime.txt’ file.[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 d1380ec] Try platform early_release runtime.txt python-3.6.15

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.6.15 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: The requested Python version has reached end-of-life.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Python 3.6 has reached its upstream end-of-life, and is[0m
[1;31m ! therefore no longer receiving security updates:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[1;31m ! [0m
[0m [91m[1;31m ! As such, it is no longer supported by this buildpack.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Please upgrade to a newer Python version by updating the[0m
[1;31m ! version configured via the ‘runtime.txt’ file.[0m
[0m [91m[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 eb5069f] Try platform early_release runtime.txt python-3.7.17

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.7.17 specified in runtime.txt
[91m
[1;31m ! Error: The requested Python version has reached end-of-life.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Python 3.7 has reached its upstream end-of-life, and is[0m
[1;31m ! therefore no longer receiving security updates:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[1;31m ! [0m
[0m [91m[1;31m ! As such, it is no longer supported by this buildpack.[0m
[1;31m ! [0m
[1;31m ! Please upgrade to a newer Python version by updating the[0m
[0m [91m[1;31m ! version configured via the ‘runtime.txt’ file.[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 1e94b8b] Try platform early_release runtime.txt python-3.8.20

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.8.20 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.8.20 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 7d43457] Try platform early_release runtime.txt python-3.8.15

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.8.15 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.8.15 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 e64a914] Try platform early_release runtime.txt python-3.8.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.8.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.8.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 821b408] Try platform early_release runtime.txt python-3.9.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 3.9.0 specified in runtime.txt
[91m
[1;31m ! Error: Python 3.9.0 isn’t available for this stack (heroku-24).[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[0m [91m[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 5563230] Try platform heroku-18 runtime.txt python-3.13.0

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-3.13.0) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 cb6a7ad] Try platform heroku-18 runtime.txt python-3.7.3

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-3.7.3) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 83b49a4] Try platform heroku-18 runtime.txt python-3.6.8

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-3.6.8) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 f6a53e2] Try platform heroku-18 runtime.txt python-2.7.16

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-2.7.16) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 bfef073] Try without runtime.txt

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-2.7.6) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 93ca287] Try platform early_release runtime.txt (deleted)

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python 2.7.6 specified in runtime.txt
[91m
[0m [91m[1;31m ! Error: The requested Python version has reached end-of-life.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Python 2.7 has reached its upstream end-of-life, and is[0m
[0m [91m[1;31m ! therefore no longer receiving security updates:[0m
[0m [91m[1;31m ! Status of Python versions[0m
[1;31m ! [0m
[0m [91m[1;31m ! As such, it is no longer supported by this buildpack.[0m
[1;31m ! [0m
[0m [91m[1;31m ! Please upgrade to a newer Python version by updating the[0m
[0m [91m[1;31m ! version configured via the ‘runtime.txt’ file.[0m
[1;31m ! [0m
[0m [91m[1;31m ! For a list of the supported Python versions, see:[0m
[1;31m ! Heroku Python Support Reference | Heroku Dev Center[0m

[0m

[main-python-2026 f5963a3] Try platform heroku-18 runtime.txt (deleted)

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Using Python version specified in runtime.txt
[1G ! Requested runtime (python-2.7.6) is not available for this stack (heroku-18).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 b0fd7f8] Try platform cedar-14 runtime.txt (deleted)

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G ! The latest version of Python 2 is python-2.7.14 (you are using python-2.7.6, which is unsupported).
[1G ! We recommend upgrading by specifying the latest version (python-2.7.14).
[1G Learn More: Specifying a Python Version | Heroku Dev Center
[1G-----> Installing python-2.7.6
[1G ! Requested runtime (python-2.7.6) is not available for this stack (cedar-14).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

[main-python-2026 fb051d6] Try platform cedar-14 runtime.txt python-3.6.2

Injecting configuration and compiling…
[1G [1G-----> Python app detected
[1G-----> Installing python-3.6.2
[1G ! Requested runtime (python-3.6.2) is not available for this stack (cedar-14).
[1G ! Aborting. More info: Heroku Python Support Reference | Heroku Dev Center

I just did a big test round with a lot of parameter combinations (heroku-18 and early_release, lots of python versions from 3.6.x to 3.14.x), and none of it worked. I think the platform is dead as long there’s no update from admin side.

Hi there! Just to be clear about this, I’m employed by OAF, but not to work on Morph. So this isn’t any kind of official response.

That said, I have worked on morph before, and I did spend some time last week digging into why python isn’t working. I also created the heroku-18 and heroku-24 platforms.

Just to clarify one thing:

It seems that there are very old (frozen) versions of heraku-18 and heraku-24 (called early_release)

early_release is actually a synonym for heroku-18 - early_release was a name I chose arbitrarily while I was working on it. It was a bad choice, and it got renamed to heroku-18 later on, after I’d moved on from OAF. Some docs haven’t been updated, and the confusion over what early_release points to is exactly why this was a bad choice of name on my part.

Heroku-24 is something I whipped up last year and intended to test, but didn’t get to that until recently. I didn’t realise anyone was using it or even knew about it! Until last week, it had had about two hours of work done on it. It’s not surprising to me that it’s incomplete, but I hadn’t realised just how broken it was until last week.

All the work I’ve done is on GitHub - openaustralia/buildstep: Buildstep uses Docker and Buildpacks to build applications like Heroku · GitHub

In short, the problem we have right now is that the server Morph is running on is old - Ubuntu Xenial. That means it has an old version of Docker, which doesn’t handle the clone3 syscall that was introduced in glibc at some point. This was fixed in Docker around 2021 ([20.10 backport] seccomp: add support for "clone3" syscall in default policy by tianon · Pull Request #42836 · moby/moby · GitHub), but there’s no version of docker in the official repos that supports xenial and has this fix (not suprising really - I haven’t checked, but I think Xenial would already have been EOL by the time that patch landed).

I had a quick stab last week at a heroku-20 platform but wasn’t able to get that built in the time I had available. I don’t know when I’ll next be able to work on this.

heroku-18 - I haven’t actually looked at it to see what the issue with it is, but

a whitelist of supported python version which are now all end-of-life.

seems likely to be on the money. More specifically - we’re basing heroku-24 on (approximately - I think the live docker image is actually a couple of releases earlier than this, but I don’t think it makes any appreciable difference) Image Layer Details - gliderlabs/herokuish:v0.10.3-24 which uses GitHub - heroku/heroku-buildpack-python at v267 · GitHub, which has these maximum versions:

Where to from here? I don’t know. I don’t work on Morph any more, so I’ll leave commenting about the future to the people who do. I don’t know how much time we’ll be able to commit to getting this working.

I’ve just seen GitHub - AkihiroSuda/clone3-workaround: Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9 · GitHub which may give us a workable short term fix. I don’t know if/when I’ll have time to look at that personally, but I’ll pass it on and maybe someone else can look at it.

1 Like

Hi all, I’m Ben and I lead the OpenAustralia Foundation (OAF).

Thank you all for the detailed conversation. The clone3 workaround suggested by James looks like a potential short-term fix worth exploring.

To be transparent: OAF is a small charity and Morph is provided as a free service. We primarily use Morph with Ruby scrapers, and Python support has fallen behind due to limited resources. Getting Python working properly involves an OS upgrade and significant code changes – it’s real work.

That said, Morph is open source and we’d welcome contributions:

If you’d like to support the work financially:

If you represent an organisation that could provide ongoing funding, feel free to reach out to me directly.