web-dev-qa-db-fra.com

gdb utilise le mauvais python

Lorsque je lance gdb (sur Ubuntu 12.04 LTS), il se bloque immédiatement avec la sortie suivante:

BlockquoteTraceback (most recent call last):
  File "/usr/lib/python2.7/site.py", line 562, in <module>
    main()
  File "/usr/lib/python2.7/site.py", line 544, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python2.7/site.py", line 236, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python2.7/sysconfig.py", line 476, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/lib/python2.7/sysconfig.py", line 337, in _init_posix
    makefile = _get_makefile_filename()
  File "/usr/lib/python2.7/sysconfig.py", line 331, in _get_makefile_filename
    return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" + (sys.pydebug and "_d" or ""), "Makefile")
AttributeError: 'module' object has no attribute 'pydebug'

De ces deux questions similaires

gdb ne peut pas s'exécuter à cause de l'erreur python

https://stackoverflow.com/questions/10641201/attributeerror-module-object-has-no-attribute-pydebug

il semble que gdb attrape le mauvais python installer? Comment savoir quel python gdb doit utiliser et où dois-je définir lequel est utilisé?

J'ai un python dans /usr/lib/python2.7 et un dans /opt/ros/fuerte/lib/python2.7.

J'ai déjà utilisé gdb avec succès sur cette machine.

Merci!

5
Isak T.

Vous ne pouvez pas configurer quel Python il doit utiliser sans créer à partir de sources; tout ce que vous pouvez faire est de lancer quelque chose comme:

readelf -d $(which gdb) | grep python

pour savoir quel Python il utilise.

3
SamB