Skip to main content
The requirements.txt file is the industry standard for specifying and managing dependencies in Python projects. This guide shows how to create, configure and use requirements.txt to ensure consistency between development and production environments.

What is a requirements.txt file?

A requirements.txt file lists all external Python packages your project needs, with their specific versions. This allows:
  • You and your team to maintain identical environments
  • New collaborators to reproduce the environment exactly
  • Deploy on Square Cloud to work with the correct dependencies

1

Create and activate a virtual environment

Working inside a virtual environment is essential to keep your project dependencies isolated from the global Python system. This avoids version conflicts and ensures reproducibility.Create the virtual environment in the root of your project (use python3 if python is not found on macOS/Linux):
Activate it with one of the commands below, depending on your system:Windows:
macOS/Linux:
Then install the packages your project uses, for example:
2

List project dependencies

Always specify exact versions with == to ensure reproducibility and prevent breakage from incompatible updates in production.
With the virtual environment activated, write every installed package and its exact version to the file:
Inside a virtual environment, pip freeze lists only the packages installed in it (your dependencies and their sub-dependencies), already pinned with ==.
Outside a virtual environment, pip freeze lists every package installed on your system. Review the file and remove what your project does not use.

Option B: Create manually

Create a requirements.txt file in the root of your project and list the packages your project uses, with their versions:
requirements.txt
3

Review and validate dependencies

Open the requirements.txt file in your text editor and:
  1. Review the package list
  2. Remove unnecessary dependencies
  3. Update versions as needed
  4. Ensure you are using exact versions (with ==)
4

Install dependencies

To install all listed dependencies:
This command guarantees that all collaborators and production environments use exactly the same versions.
5

Version and share

With requirements.txt ready, you can:
  • Share it with your team
  • Put it in version control (git)
  • Ensure everyone works with the same versions
  • Simplify deployment on Square Cloud
When you host your project on Square Cloud, the requirements.txt file is automatically detected and its dependencies are installed with pip install -r requirements.txt before your app starts.

Best practices and tips

  • Keep updated: Review and update requirements.txt regularly as you add new dependencies
  • Use exact versions: Always use == instead of >, >= or no version to avoid surprises in production
  • Review pip freeze: If using pip freeze, review the file before committing, as it may include unnecessary auxiliary packages
  • Versioning: Commit requirements.txt to git to track dependency changes
  • Isolated environment: Maintain one virtual environment per project to avoid global conflicts
  • Test locally: Before deploying, test the file with pip install -r requirements.txt in a new environment

Next steps

With your requirements.txt file configured:
  1. Commit it to your Git repository.
  2. Host your project with the Python runtime guide, or follow a framework guide: Django, Flask or FastAPI.
  3. Deploy automatically from GitHub on every push.