-1

So I'm trying to debug my C code ran in Python ctypes: gdb: break in shared library loaded by python. However, whenever I run the gdb I get the following error: ModuleNotFoundError: No module named '_tkinter'. I know there's a lot of questions about this error: matplotlib error - no module named tkinter, and ImportError: No module named 'Tkinter'. I've tried the following:

sudo apt-get install python-tk

and

sudo apt-get install python3-tk

And it works perfectly fine when executing from Ubuntu command line: brandon@DESKTOP-V5LTF5T:~$ python3 MainApp.py But it does not work when executing from gdb: enter image description here Why would it work from the terminal but not gdb?

notMyName
  • 690
  • 2
  • 6
  • 17
  • If `gdb` could work with `tkinter`,I think the cause is that you have two different versions of `python`.But the `gdb` would use another version of python which you didn't install `tkinter` . – jizhihaoSAMA Jul 08 '20 at 15:05
  • @jizhihaoSAMA, it's possible, see the first link attached. I ran gdb with the 'python3' argument which uses python 3.6.9, to which I installed tkinter in the picture attached above – notMyName Jul 08 '20 at 15:16
  • To exclude this possibility, you could try to use `which python3` in terminal to check the path. – jizhihaoSAMA Jul 08 '20 at 15:51

2 Answers2

2

You have installed tkinter for your python3 installation, but you are running python3-dbg from GDB. Luckily, the solution is simple: install tkinter for the debugging interpreter (python3-tk-dbg):

➜  ~ python3-dbg
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
>>> 

➜  ~ sudo apt install python3-tk-dbg 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  python3-tk-dbg
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/509 kB of archives.
After this operation, 1,441 kB of additional disk space will be used.
Selecting previously unselected package python3-tk-dbg:amd64.
(Reading database ... 205251 files and directories currently installed.)
Preparing to unpack .../python3-tk-dbg_3.6.9-1~18.04_amd64.deb ...
Unpacking python3-tk-dbg:amd64 (3.6.9-1~18.04) ...
Setting up python3-tk-dbg:amd64 (3.6.9-1~18.04) ...

➜  ~ python3-dbg
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

lxop
  • 7,596
  • 3
  • 27
  • 42
-1

I face same error.Upgrade Your Python Version.I hope That work for you