Creating a Development Environment

This describes how to setup a development environment for working on a project that uses PyGObject, or for working on PyGObject itself. Please follow the instructions on “Getting Started” first, as they are a pre-requirement.

Environment Setup

Install Dependencies

In order to compile Python and pip install pygobject, dependencies are need for your operating system.

Ubuntu

Fedora

Arch Linux

Windows

macOS

openSUSE

Ubuntu / Debian

sudo apt-get install -y python3-venv python3-wheel python3-dev
sudo apt-get install -y libgirepository1.0-dev build-essential \
  libbz2-dev libreadline-dev libssl-dev zlib1g-dev libsqlite3-dev wget \
  curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libcairo2-dev

Fedora

sudo dnf install -y python3-wheel
sudo dnf install -y gcc zlib-devel bzip2 bzip2-devel readline-devel \
  sqlite sqlite-devel openssl-devel tk-devel git python3-cairo-devel \
  cairo-gobject-devel gobject-introspection-devel

Arch Linux

sudo pacman -S --noconfirm python-wheel
sudo pacman -S --noconfirm base-devel openssl zlib git gobject-introspection

openSUSE

sudo zypper install -y python3-wheel gobject-introspection-devel \
  python3-cairo-devel openssl zlib git
sudo zypper install --type pattern devel_basis

Windows

pacman -S --needed --noconfirm base-devel mingw-w64-x86_64-toolchain git \
   mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-cairo \
   mingw-w64-x86_64-gobject-introspection mingw-w64-x86_64-libffi

macOS

With homebrew:

brew update
brew install pyenv pipx
brew install pipx
pipx ensurepath

Install pyenv

pyenv lets you easily switch between multiple versions of Python.

Linux

macOS

Linux

curl https://pyenv.run | bash
exec $SHELL
pyenv install 3.11
pyenv global 3.11

macOS

pyenv install 3.11
pyenv global 3.11

Install Poetry

Poetry is a tool for dependency management and packaging in Python, we’ll install it with pipx which installs Python CLI tools in to separate virtualenvs.

Linux

macOS

Windows

Linux

python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install poetry

Windows

python.exe -m pip install --user pipx
python.exe -m pipx ensurepath
pipx install poetry

macOS

With homebrew:

pipx install poetry

Work on PyGObject

Platform Independent Steps

If you are going to work on developing PyGObject itself, then do the following additional steps:

git clone https://gitlab.gnome.org/GNOME/pygobject.git
cd pygobject
poetry install
poetry shell