bazel-contrib / bazel-contrib/rules_python
bazel_dep rules_python cause Tkinter xcb error
- Langage dominant
- Starlark
- Étoiles
- 688
- Forks
- 721
- Merge moyen
- 15 h 7 min
- PR mergées (30 j)
- 76
Description
# 🐞 bug report
### Affected Rule
The issue is caused by the rule:
`py_binary`
### Is this a regression?
previous rules_python not work, for example 0.28.0
### Description
use `bazel_dep` `rules_python` cause Tkinter xcb error
```
$ bazel run //app:app
INFO: Analyzed target //app:app (75 packages loaded, 2984 targets configured).
INFO: Found 1 target...
Target //app:app up-to-date:
bazel-bin/app/app
INFO: Elapsed time: 0.363s, Critical Path: 0.05s
INFO: 5 processes: 5 internal.
INFO: Build completed successfully, 5 total actions
INFO: Running command line: bazel-bin/app/app
[xcb] Unknown sequence number while appending request
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
python3: ../../src/xcb_io.c:157: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
Aborted (core dumped)
```
`MODULE.bazel`
```
bazel_dep(name = "rules_python", version = "0.31.0")
```
`app.py`
```
import ctypes
x11 = ctypes.cdll.LoadLibrary("libX11.so")
x11.XInitThreads()
import tkinter as tk
app = tk.Tk()
button = tk.Button(app, text="Press me")
button.pack()
app.mainloop()
```
## 🔬 Minimal Reproduction
you can clone my repo to reproduce issue
https://github.com/redheli/bazel_issue_reproduce
## 🔥 Exception or Error
[xcb] Unknown sequence number while appending request
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
python3: ../../src/xcb_io.c:157: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
Aborted (core dumped)
## 🌍 Your Environment
**Operating System:**
$ uname -a
Linux max-ga503rm 5.19.0-40-generic #41~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 31 16:00:14 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
**Output of `bazel version`:**
$ bazel --version
bazel 7.0.2
**Rules_python version:**
0.31.0
**Anything else relevant?**
workaround is to use `--noenable_bzlmod` , but it is not an option for my project.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par MODULE.bazel et app.py dans la reproduction minimale liée, puis exécutez `bazel run //app:app` avec rules_python 0.31.0 et `--noenable_bzlmod` à des fins de comparaison. Suivez le lancement de `py_binary` sous bazel_dep et confirmez que le correctif empêche l'abandon XCB de Tkinter tout en préservant le démarrage normal de l'application.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100