SymPy: Python Library for Symbolic Mathematics

Nikhil Maan (~nikhil586)




SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.

SymPy is a free and open-source Python library, distributed under the BSD license. What sets SymPy apart is its Python-centric design, ensuring compatibility and accessibility for Python developers. It boasts a lightweight footprint, relying exclusively on the pure Python mpmath library for arbitrary floating-point arithmetic. Beyond its standalone capabilities as an interactive tool, SymPy can be seamlessly integrated into various applications and extended with custom functions, enhancing its utility for developers across different domains.

Development Environment:

Ensure you have the following software/tools set up on your system:

  • Python: SymPy is a Python library, so you need to have Python installed. We recommend using Python 3.x, as it is the actively supported version.
  • Git: Git is essential for version control and collaboration. Install Git and configure it with your credentials.
  • SymPy Repository: Clone the SymPy repository from GitHub to your local machine using Git. This will serve as your development environment.
  • Virtual Environment: Consider using virtual environments (e.g., virtualenv or conda) to manage project dependencies and isolate your SymPy development environment.
  • Text Editor/IDE: Choose a text editor or integrated development environment (IDE) that you are comfortable with for writing Python code.


Before diving into contributing to SymPy, let's ensure you have the necessary prerequisites in place.

  • Proficiency in Python programming.
  • Basic understanding of mathematical concepts.
  • Familiarity with SymPy's codebase (Optional, but beneficial).
  • A development environment set up for SymPy (Refer to SymPy's official documentation for instructions)


SymPy has a few dependencies that you need to install

  • mpmath: mpmath is a pure Python package for arbitrary precision arithmetic. It is used under the hood whenever SymPy calculates the floating-point value of a function, e.g., when using evalf.
  • Other dependencies: SymPy has a few other optional dependencies. You can read more about them at our Dependencies Guide.

For detailed setup instructions, please refer to our Installation Guide

Content URLs:

Contributing to SymPy:

SymPy is a community-driven project. We welcome contributions of all kinds, including code, documentation, tutorials, and more. If you are interested in contributing to SymPy, please read our Introduction to Contributing for more information.

  • GitHub Repository: SymPy GitHub Repository - Access the source code and submit your contributions.
  • Issues: SymPy Issue Tracker - Find open issues that you can work on. Look for "beginner-friendly" labels for newcomers. Guide for New Contributors: Check out our dedicated Guide for New Contributors for tailored advice on making your first contributions.
  • Easy-to-Fix Issues: Explore our list of easy-to-fix issues for beginners looking to make their first contributions.
  • Documentation Style Guide: When contributing to documentation, follow our Docstring Style Guide for consistency and quality.
  • Code of Conduct: Review our Code of Conduct to understand the community guidelines.

Speaker Info:

Nikhil is a Software Developer at He is a Python enthusiast and loves to contribute to open-source projects. He is a SymPy maintainer and has been contributing to SymPy for the past 4 years. he was a Google Summer of Code student with SymPy in 2019 and 2020, and a mentor in 2021 and 2023. He is also a PyDelhi volunteer and has been a part of the organizing team for PyCon India since 2020.

Speaker Links:

Section: Scientific Computing
Type: DevSprint
Target Audience: Intermediate
Last Updated: