# Trouble in pip installing vtk-osmesa

**URL:** https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890
**Category:** Support
**Tags:** python
**Created:** [November 19, 2024, 12:55am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890 "2024-11-19T00:55:08Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![natsu\_mizu](https://discourse.vtk.org/user_avatar/discourse.vtk.org/natsu_mizu/32/2375_2.png) [@natsu\_mizu](https://discourse.vtk.org/u/natsu_mizu)
#### Post date: [November 19, 2024, 12:55am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/1 "2024-11-19T00:55:08Z")

</div>

I’ve been using `vtk-osmesa` installed with pip as `pip install --extra-index-url https://wheels.vtk.org vtk-osmesa`,  
following this post: [Status Update: VTK Python Wheels - Announcements - VTK](https://discourse.vtk.org/t/status-update-vtk-python-wheels/11212)

OS: “Rocky Linux 8.6 (Green Obsidian)”  
$ python --version is Python 3.12.4

This times, pip install fails:

```auto
$ pip install --extra-index-url https://wheels.vtk.org vtk-osmesa
Looking in indexes: https://pypi.org/simple, https://wheels.vtk.org
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))': /vtk-osmesa/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))': /vtk-osmesa/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))': /vtk-osmesa/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))': /vtk-osmesa/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))': /vtk-osmesa/
Could not fetch URL https://wheels.vtk.org/vtk-osmesa/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='wheels.vtk.org', port=443): Max retries exceeded with url: /vtk-osmesa/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1000)'))) - skipping
ERROR: Could not find a version that satisfies the requirement vtk-osmesa (from versions: none)
ERROR: No matching distribution found for vtk-osmesa

```

I grabbed .whl from [https://gitlab.kitware.com/vtk/vtk/-/packages/483](https://gitlab.kitware.com/vtk/vtk/-/packages/483) and my problem was fixed.  
But I’m happy if simple pip install comes back.

## Thanks in advance.

Natsu

---

<div class="post-metadata">

### Author: ![jaswantp](https://discourse.vtk.org/user_avatar/discourse.vtk.org/jaswantp/32/10046_2.png) [@jaswantp](https://discourse.vtk.org/u/jaswantp)
#### Post date: [November 19, 2024, 12:58am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/2 "2024-11-19T00:58:23Z")

</div>

Hello @natsu_mizu

That is outdated. Please see latest information at [Status Update: Runtime OpenGL render window selection in VTK](https://discourse.vtk.org/t/status-update-runtime-opengl-render-window-selection-in-vtk/14583)

There is no longer a need to download a separate package for osmesa support because it is built into the `vtk` package.

---

<div class="post-metadata">

### Author: ![natsu\_mizu](https://discourse.vtk.org/user_avatar/discourse.vtk.org/natsu_mizu/32/2375_2.png) [@natsu\_mizu](https://discourse.vtk.org/u/natsu_mizu)
#### Post date: [November 19, 2024, 1:04am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/3 "2024-11-19T01:04:59Z")

</div>

That’s great.

I appriceiate that and thank you for such a quick reply.

– Natsu

---

<div class="post-metadata">

### Author: ![PathosV](https://discourse.vtk.org/user_avatar/discourse.vtk.org/pathosv/32/10353_2.png) [@PathosV](https://discourse.vtk.org/u/PathosV)
#### Post date: [November 9, 2025, 6:05am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/4 "2025-11-09T06:05:53Z")

</div>

Hey @jaswantp , I’m seeing similar issues from the wheels and gitlab indexes  
```  
pip install --extra-index-url [https://wheels.vtk.org](https://wheels.vtk.org) vtk-osmesa  
Looking in indexes: [Simple index](https://pypi.org/simple) , [https://wheels.vtk.org](https://wheels.vtk.org)  
ERROR: Could not find a version that satisfies the requirement vtk-osmesa (from versions: none)  
ERROR: No matching distribution found for vtk-osmesa  
```

I understand that ideally I should not need the separate package, but on my install the fallback to osmesa is temperamental. This is through pyvista.

I was able to manually find the last stable wheel and download it myself, but the indexes seem to not report anything being available.

---

<div class="post-metadata">

### Author: ![Ingmar](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/i/cc9497/32.png) [@Ingmar](https://discourse.vtk.org/u/Ingmar)
#### Post date: [November 9, 2025, 5:08pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/5 "2025-11-09T17:08:57Z")

</div>

Dear @jaswantp ,  
I understand that nowadays the “vtk” wheel should be used directly, however I am not entirely sure how to enforce fallback to osmesa (or egl) for instance. My tests run out of a custom docker container, which then generates: ``ImportError: libXrender.so.1: cannot open shared object file: No such file or directory``

I am not sure what I am supposed to do based on [Runtime settings - VTK documentation](https://docs.vtk.org/en/latest/advanced/runtime_settings.html) and [Simplified python wheel for VTK - Development - VTK](https://discourse.vtk.org/t/simplified-python-wheel-for-vtk/14329)

Any suggestions how to fix this? Is there any python option I can manipulate?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [November 10, 2025, 9:00am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/6 "2025-11-10T09:00:23Z")

</div>

force osmesa or egl by setting the env var `VTK_DEFAULT_OPENGL_WINDOW` to either `vtkEGLRenderWindow` or `vtkOSOpenGLRenderWindow`.

Alternatively, use the specific version of the render window you want to use.

---

<div class="post-metadata">

### Author: ![PathosV](https://discourse.vtk.org/user_avatar/discourse.vtk.org/pathosv/32/10353_2.png) [@PathosV](https://discourse.vtk.org/u/PathosV)
#### Post date: [November 10, 2025, 8:44pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/7 "2025-11-10T20:44:47Z")

</div>

I have not tried those environment variables yet, but I was specifying that I wanted off\_screen rendering in my pyvista calls. It could just be an issue with pyvista.

For now though, I’m still interested in being able to query the wheels index so I don’t break previously committed environments. Can we get confirmation if these are coming back or not?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [November 10, 2025, 9:01pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/8 "2025-11-10T21:01:57Z")

</div>

> [@PathosV](#):
>
> Can we get confirmation if these are coming back or not?

They are not coming back.

> It could just be an issue with pyvista

Probably

---

<div class="post-metadata">

### Author: ![hakostra](https://discourse.vtk.org/user_avatar/discourse.vtk.org/hakostra/32/2990_2.png) [@hakostra](https://discourse.vtk.org/u/hakostra)
#### Post date: [November 11, 2025, 7:34am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/9 "2025-11-11T07:34:52Z")

</div>

I think there are two issues:

The `vtk-osmesa` for release 9.3.1, the last release of that package, was deleted from [wheels.vtk.org](http://wheels.vtk.org) a few days ago. So previous references on how to install this wheel is lo longer valid. The package is still available through [VTK Gitlab](https://gitlab.kitware.com/vtk/vtk/-/packages/449), though, for anyone that needs it (please do not delete it from there as well).

Second issue is probably that while the `vtk-osmesa` package was built without X libraries, the releases 9.4 and 9.5 had no packages without X dependencies. This changes in 9.6, when also the X libraries are dynamically loaded, and maybe it’s a good idea to try the latest nightly build of VTK and see if that solves the problems?

I have no problems setting up the nightly builds of VTK with OSMesa in an environment without the X libraries, where I previously depended on the `vtk-osmesa`. I think for many pyvista workflows this is the way forward.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [November 11, 2025, 11:31am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/10 "2025-11-11T11:31:36Z")

</div>

> [@hakostra](#):
>
> The `vtk-osmesa` for release 9.3.1, the last release of that package, was deleted from [wheels.vtk.org](http://wheels.vtk.org) a few days ago.

Is that true? Looking at [wheels.vtk.org](http://wheels.vtk.org), I see

- [vtk\_osmesa-9.3.1-cp310-cp310-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl](https://gitlab.kitware.com/api/v4/projects/13/packages/pypi/files/9c11b297159217ff0e3abfdfa97972a62656ec8afd28927d56e949938ae0905e/vtk_osmesa-9.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c11b297159217ff0e3abfdfa97972a62656ec8afd28927d56e949938ae0905e)
- [vtk\_osmesa-9.3.1-cp311-cp311-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl](https://gitlab.kitware.com/api/v4/projects/13/packages/pypi/files/fb46af2fb7e31b1cec696e9d41566bed7727041c396ddb7424358cdda72ce7af/vtk_osmesa-9.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=fb46af2fb7e31b1cec696e9d41566bed7727041c396ddb7424358cdda72ce7af)
- [vtk\_osmesa-9.3.1-cp312-cp312-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl](https://gitlab.kitware.com/api/v4/projects/13/packages/pypi/files/5ef1462411cd92dcdbd20251e464ce64e00ae443cdcd49aba05d5b6108e0e6bf/vtk_osmesa-9.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=5ef1462411cd92dcdbd20251e464ce64e00ae443cdcd49aba05d5b6108e0e6bf)

and others.

---

<div class="post-metadata">

### Author: ![hakostra](https://discourse.vtk.org/user_avatar/discourse.vtk.org/hakostra/32/2990_2.png) [@hakostra](https://discourse.vtk.org/u/hakostra)
#### Post date: [November 11, 2025, 11:43am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/11 "2025-11-11T11:43:03Z")

</div>

```auto
$ python3 -m venv vtk-osmesa-venv
$ . vtk-osmesa-venv/bin/activate
$ pip install --extra-index-url https://wheels.vtk.org vtk-osmesa
Looking in indexes: https://pypi.org/simple, https://wheels.vtk.org
ERROR: Could not find a version that satisfies the requirement vtk-osmesa (from versions: none)
ERROR: No matching distribution found for vtk-osmesa

```

On Friday everything worked, Saturday this started happening. This is testing with Python 3.12.

And yes, through Gitlab the wheels can still be downloaded, but [wheels.vtk.org](http://wheels.vtk.org) no longer appear to serve the vtk-osmesa 9.3.1 wheel (as demonstrated above).

---

<div class="post-metadata">

### Author: ![dgobbi](https://discourse.vtk.org/user_avatar/discourse.vtk.org/dgobbi/32/18_2.png) [@dgobbi](https://discourse.vtk.org/u/dgobbi)
#### Post date: [November 11, 2025, 3:05pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/12 "2025-11-11T15:05:44Z")

</div>

@cory.quammen since the packages are there (and they are, I’m able to download them) but pip is unable to retrieve them (it isn’t able on my system, at least), then is it possible that [vtk.org](http://vtk.org) recently went through some security-related or protocol-related changes that would cause pip to fail like this?

Edit: example using pip to get vtk from kitware’s servers vs. from pypi:

```plaintext
pip --verbose index --pre --index-url https://wheels.vtk.org versions vtk
ERROR: No matching distribution found for vtk

```

```plaintext
pip --verbose index --pre versions vtk
vtk (9.5.2)
Available versions: 9.5.2, 9.5.1, 9.5.0, 9.5.0rc3, 9.5.0rc2, 9.5.0rc1, 9.4.2, 9.4.1, 9.4.0, 9.4.0rc3, 9.3.20230807rc0, 9.3.1, 9.3.0, 9.3.0rc2, 9.3.0rc1, 9.2.6, 9.2.5, 9.2.4, 9.2.2

```

Edit 2: apparently pip needs more verbosity to show why it fails:

```plaintext
pip -vv index --index-url https://wheels.vtk.org versions vtk

```

The result is a lot of text that I won’t paste here, but it looks like kitware’s servers think that the pip requests are coming from a bot and are therefore blocking them.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [November 11, 2025, 4:07pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/13 "2025-11-11T16:07:53Z")

</div>

Hi @dgobbi,

On Friday, Kitware enabled Anubis to filter out traffic from AI scrapers that was making [gitlab.kitware.com](http://gitlab.kitware.com) unusable. Since the wheels listed on [wheels.vtk.org](http://wheels.vtk.org) download from [gitlab.kitware.com](http://gitlab.kitware.com), that protection is almost definitely interfering with the pip downloads.

I will work with our system administrators to remove the block.

---

<div class="post-metadata">

### Author: ![PathosV](https://discourse.vtk.org/user_avatar/discourse.vtk.org/pathosv/32/10353_2.png) [@PathosV](https://discourse.vtk.org/u/PathosV)
#### Post date: [November 11, 2025, 5:16pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/14 "2025-11-11T17:16:49Z")

</div>

@cory.quammen was @mwestphal mistaken then? I directly asked if the [wheels.vtk.org](http://wheels.vtk.org) and gitlab indexes were coming back and he said no.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [November 11, 2025, 6:38pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/15 "2025-11-11T18:38:18Z")

</div>

I think he meant they aren’t coming back in the sense that they will not be provided in future versions of VTK.

---

<div class="post-metadata">

### Author: ![Sebastien\_Jourdain](https://discourse.vtk.org/user_avatar/discourse.vtk.org/sebastien_jourdain/32/100_2.png) [@Sebastien\_Jourdain](https://discourse.vtk.org/u/Sebastien_Jourdain)
#### Post date: [November 11, 2025, 10:26pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/16 "2025-11-11T22:26:03Z")

</div>

Just to clarify, dedicated osmesa or egl wheel won’t be created for any futures version of VTK as the current “vtk” wheel already include them using runtime selection via glad.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [November 12, 2025, 6:49am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/17 "2025-11-12T06:49:32Z")

</div>

I was indeed mistaken as I misunderstood the issue completely.

Indeed, no new vtk-osmesa wheel will be provided in the future because the single wheel supports it since vtk 9.5.0, but currently available wheel of older release, osmesa or otherwise should stay available and I hope this issue will be fixed soon.

---

<div class="post-metadata">

### Author: ![arnaudbore](https://discourse.vtk.org/user_avatar/discourse.vtk.org/arnaudbore/32/10362_2.png) [@arnaudbore](https://discourse.vtk.org/u/arnaudbore)
#### Post date: [November 14, 2025, 2:50am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/18 "2025-11-14T02:50:12Z")

</div>

Hey @cory.quammen ,

If I understood your reply. The wheels (9.3.1 in that case) are not being deleted but it’s mostly a temporary issue with Anubis filter and it will soon be fixed.

Right ? 😬

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [November 14, 2025, 8:11am UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/19 "2025-11-14T08:11:08Z")

</div>

Correct 🙂

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [November 14, 2025, 6:17pm UTC](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890/20 "2025-11-14T18:17:43Z")

</div>

The issue with Anubis should be fixed now. Please try pip installing again.

[Next page](https://discourse.vtk.org/t/trouble-in-pip-installing-vtk-osmesa/14890.md?page=2)
