Python classic buildpack now rejects apps with multiple package manager files

Change effective on 10 December 2025

The Python classic buildpack, used by Cedar-generation apps, will now fail the build if the files belonging to multiple Python package managers are found in the source code for your app. Previously the buildpack guessed which package manager to use, which may not have been the package manager you intended. This error replaces the warning which was displayed in build logs starting 8th November 2024.

If your app contains multiple package manager files (such as two or more of requirements.txt, Pipfile.lock, poetry.lock or uv.lock files), you must now decide which package manager you want to use and then delete the file(s) and any config from the others.

If you use a third-party uv or Poetry buildpack, you must remove that buildpack from your app, since it’s no longer required and the requirements.txt file it generates will trigger this error.

If you aren’t sure which package manager to use, we recommend uv, since it supports lockfiles, is extremely fast, and is actively maintained by a full-time team. Learn more in our blog post Heroku Adds Support for uv.