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 / 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
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
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