#1 by janohirmas
I'm trying to deploy a project in Heroku, but I'm getting this problem.
-------------------------------------------------------------------
-----> Building on the Heroku-22 stack
-----> Determining which buildpack to use for this app
-----> Python app detected
-----> No Python version was specified. Using the buildpack default: python-3.12.3
To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.12.3
-----> Installing pip 24.0, setuptools 69.2.0 and wheel 0.43.0
-----> Installing SQLite3
-----> Installing requirements with pip
Collecting otree>=5.0.0a21 (from -r requirements.txt (line 4))
Downloading otree-6.0.0b4.tar.gz (459 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'error'
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
**********************************************************************************
* Error: This version of oTree is only compatible with these Python versions:
* 3.7, 3.8, 3.9, 3.10, 3.11
**********************************************************************************
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
! Push rejected, failed to compile Python app.
! Push failed
#2 by DavidP
You'll have to tell heroku to use a version of python older than 3.12, e.g. 3.11. To do so, create a file runtime.txt in the project folder. It should contain just one line: python-3.11.9 Save the file, git commit (don't forget), and push again to heroku. This should do the trick.