← Back to team overview

touch-packages team mailing list archive

[Bug 1398033] Re: python breaks gdb

 

The same approach could be used to make a program that explictly loads eg. python3.4 execuable with correct $PYTHONPATH based on
for example $PYTHON_VERSION environment variable setting .
Another approach might be to convert all scripts that require python3+ to explicitly start with
'#!/usr/bin/python3.4
'
, but you'd have to update them each time you upgrade python .
Yet another approach, which might be best in the long term, would be to update the kernel to handle more sophisticated 
'#!' lines like: 
'#!python>=3
'
meaning : find the file under any directory in $PATH  that ends with a decimal label string consisting of numbers and '.' or '_' chars only
that compares >= to the label '3' , and then run it as the interpreter.
Or you could make a program based on the python.c program in the link above which interprets special arguments , and all scripts could
start with something like :
 '#!/usr/bin/python_launcher >= 3
'

These issues and many other syntax ambiguities and many other attributes make Python IMHO a moving target to develop for and not suitable for 
use in reliable production quality systems .

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/1398033

Title:
  python breaks gdb

Status in apport package in Ubuntu:
  Confirmed

Bug description:
  The gdb program fails with settings such as PYTHONPATH in the
  environment.

  I have no interest in using python or in using gdb to debug python
  programs .

  I want to use GDB to debug a normal GCC built executable,  yet these internal
  gdb python dependencies prevent me from doing so .

  GDB should be shipped without python support ;   python support should be an
  optional add-on sub-package for python programmers.

  I have to compile GDB without python support to overcome this problem.

  
  For instance, with a setting of PYTHONPATH=/usr/lib/python2.7:/usr/local/lib/python2.7/site-packages ,
  because I have some python packages installed in /usr/local/lib/python2.7/site-packages,  GDB refuses to initialize:
  $ export LANG=C
  $ export LC_ALL=POSIX
  $ gdb --args $MY_C_PROGRAMS_COMMAND_LINE
  Fatal Python error: Py_Initialize: Unable to get the locale encoding
    File "/usr/lib/python2.7/encodings/__init__.py", line 123
      raise CodecRegistryError,\
                              ^
  SyntaxError: invalid syntax
  Aborted

  The same python sickness infects ubuntu-bug :

  $ ubuntu-bug
  Fatal Python error: Py_Initialize: Unable to get the locale encoding
    File "/usr/lib/python2.7/encodings/__init__.py", line 123
      raise CodecRegistryError,\
                              ^
  SyntaxError: invalid syntax
  Aborted

  However, python and python programs run fine with my $PYTHONPATH
  setting - only gdb and ubuntu-bug do not .

  If I could, I'd remove python entirely from my system,  but I have to
  use a system set up by work which includes python .

  But I expect to be able to use GDB without python being installed ,
  and regardless of any environment variable setting .

  This problem obliges me to recompile gdb without python support and install it over the system gdb , which I have to do
  after each apt-get  'dist-upgrade' , or carefully remove gdb from the dist-upgrade every time.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apport/+bug/1398033/+subscriptions


References