pygobject/pycairo

Is it possible to install pycairo on Windows 10? I installed GTK for Windows, as Cairo apparently comes with it.

futuremotiondev opened this issue · 3 comments

On Cairo's Download Page, it states that:

Precompiled binaries for Windows platforms can be obtained in a variety of ways.
Since GTK+ 2.8 and newer depends on Cairo, you can have Cairo installed on Win32 as a side-effect of installing GTK+.
You probably want at least the zlib, cairo, and libpng run-time archives (you can search on those strings to find them in the page). That should be it. Just pop libcairo-2.dll, libpng13.dll and zlib1.dll into your working directory or system PATH, and away you go!

GTK's Setup Page gives two setup options:

I went with MSYS2 and it installed correctly.

As Cairo's page mentions: You probably want at least the zlib, cairo, and libpng run-time archives. Can I somehow extract these from my MSYS2 install > Add to system PATH and then be good to go with installing pycairo?

Or should I start over, and install via gvsbuild instead?

If anyone can create a working outline to get pycairo installed and fully functional on Windows, it would be a massive help.

Thanks so much.

Edit:

I don't know what to make of this. I did a search for the three DLLs that Cairo recommended, and I have many different versions of each - the exception being libpng13.dll - of which I have no versions.

Everything64_87PTjeKwOX

Everything64_bG7gngF02p

lazka commented

As Cairo's page mentions: You probably want at least the zlib, cairo, and libpng run-time archives. Can I somehow extract these from my MSYS2 install > Add to system PATH and then be good to go with installing pycairo?

Yes, but you still need a matching toolchain and headers to build pycairo.

The pycairo wheel on Windows comes with cairo included. Does that work for you? And if not, what do you need?

@lazka Still confused. Sorry. In order to install pycairo on Windows 10, what are the steps I need to take? I see the following on the homepage:

Pycairo is a Python module providing bindings for the cairo graphics library. It depends on cairo >= 1.15.10 and works with Python 3.8+ and PyPy3. Pycairo, including this documentation, is licensed under the LGPL-2.1-only OR MPL-1.1.
Installing Pycairo requires cairo including its headers. For more info see "Getting Started".

  1. Looking at this: https://cairographics.org/download/ it says:

Since GTK+ 2.8 and newer depends on Cairo, you can have Cairo installed on Win32 as a side-effect of installing GTK+. For example, see The Glade/GTK+ for Windows Toolkit.
From Daniel Keep (edited by Kalle Vahlman):
Go to official GTK+ for Windows page.

  1. I figured that the second option would be best: Go to official GTK+ for Windows page. I just don't know what version to install, MSYS2, or gvsbuild.

MSYS2 is installed, but I also have Visual Studio 2022 installed. Furthermore, I use both regularly, so it would be nice to have both, honestly.

Also, on the getting started page, it mentions:

Installing Pycairo requires pkg-config and cairo including its headers. Here are some examples on how to install those for some platforms

Unfortunately, there are no installation steps for windows:

    Ubuntu/Debian: sudo apt install libcairo2-dev pkg-config python3-dev
    macOS/Homebrew: brew install cairo pkg-config
    Arch Linux: sudo pacman -S cairo pkgconf
    Fedora: sudo dnf install cairo-devel pkg-config python3-devel
    openSUSE: sudo zypper install cairo-devel pkg-config python3-devel

In the same vein, you also mention:

Yes, but you still need a matching toolchain and headers to build pycairo.

Again, how do I get these installed on Win10?

Lastly, you mention:

The pycairo wheel on Windows comes with cairo included. Does that work for you? And if not, what do you need?

Am I overcomplicating this? Do I just need to do:

pip install pycairo

And everything will work as expected? I'm not trying to compile from source, I just want to install and use the library in one of my VENVs. Furthermore, how does the pycairo wheel get installed? Does that just get installed with pip install pycairo? Or do I need a second command?

Any chance you could give me step-by-step instructions on how to get pycairo installed on Windows 10? I know that's asking a lot, I'm sorry.

I would really appreciate any help you can give.

lazka commented

pip install pycairo is enough on Windows.

Yeah, the docs are lacking in that regard. Thanks for your detailed feedback, I'll try to improve the docs and keep this issue open until then, so it's not forgotten.