--- Begin Message ---
Subject: |
python tkinter library not found in guix shell |
Date: |
Sat, 15 Jun 2024 12:22:32 +0200 (CEST) |
Hello,
I want to use guix shell for development environment with python, and more precisely, I want to usethe tkinter library in python.
According to https://issues.guix.gnu.org/20889 I believed that tkinter should be automatically included into python but when I launch
guix shell -CN python tk tcl -- python3 -m tkinter
I get
Traceback (most recent call last):
File "/gnu/store/1w5v338qk5m8khcazwclprs3znqp6f7f-python-3.10.7/lib/python3.10/runpy.py", line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/gnu/store/1w5v338qk5m8khcazwclprs3znqp6f7f-python-3.10.7/lib/python3.10/runpy.py", line 146, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/gnu/store/1w5v338qk5m8khcazwclprs3znqp6f7f-python-3.10.7/lib/python3.10/runpy.py", line 110, in _get_module_details
__import__(pkg_name)
File "/gnu/store/1w5v338qk5m8khcazwclprs3znqp6f7f-python-3.10.7/lib/python3.10/tkinter/__init__.py", line 37, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
whereas, python3 -m tkinter works perfectly well on the host OS (which is a foreign os, not guix-SD). I did a guix pull pretty recently, guix is up to date.
Is this a bug or is there a specific way to install python so that we get tkinter at the same time ?
Thanks.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#71567: python tkinter library not found in guix shell |
Date: |
Sun, 16 Jun 2024 14:09:32 +0000 |
Hi Timothee,
On 15 June 2024 10:22:32 UTC, timotheemathieu--- via Bug reports for GNU Guix
<bug-guix@gnu.org> wrote:
>According to https://issues.guix.gnu.org/20889 I believed that tkinter should
>be automatically included into python
Not quite. Quoting Ludo' in that thread:
"I think we should move tkinter*.so to a separate output of the Python
packages"
And indeed:
~ λ guix show python
name: python
version: 3.10.7
outputs:
+ tk: [description missing]
+ idle: [description missing]
+ out: everything else
[...]
So there's no bug, you just never included tkinter in your environment when you
thought you had.
Iinstead of
>guix shell -CN python tk tcl -- python3 -m tkinter
try
~ λ guix shell -CN python{,:tk} -- python3 -m tkinter
'python{,:tk}' is bash shorthand that expands to 'python python:tk'.
I get a $DISPLAY error because this machine doesn't run X, but that implies
success, right?
Kind regards,
T G-R
Sent on the go. Excuse or enjoy my brevity.
--- End Message ---