[python-users] [emacs-for-python] Emacs-Bug mit 'less'

Aroldo Souza-Leite asouzaleite at gmx.de
Do Okt 27 14:08:21 CEST 2011


Hallo Andi,

danke.

'less' funktioniert anstandslos in der Bash-Befehlszeile.

Emacs23-PDB versucht, eine "OR"- Operation zwischen einem 
auszudruckenden Variablenwert und dem Wert einer im Modul nicht 
existierenden Variablen 'less' durchzuführen. Wenn ich die Variable 
'less' nachträglich deklariere, und die Typen stimmen, dann klappt es 
mit der nicht gefragten bitweisen "OR" - Operation perfekt ...

In einigen Fällen, die ich nicht reproduzieren konnte, bekomme ich in 
der Bash-Zeile nach Schließen von Emacs und damit von PDB eine Meldung, 
die so aussieht, als ob ich eine Ausgabe mit "| less" an "less" pipen 
wollte. Das finde ich noch verrückter.

Ich vermute eher einen bekloppten Fehler in meiner persönlichen 
Ubuntu-Konfiguration als in Emacs. Irgendwas stimmt mit meiner Shell im 
Zusammenhang mit Emacs nicht.  Ich werde eher in dieser Richtung weiter 
suchen. Lass mich erst mal meine '.bashrc' noch eimal überprüfen und 
verschwende bitte keine Zeit mehr mit diesem Bug. Ich halte die Liste 
informiert.

Danke auf jeden Fall.

Aroldo.

--------<x_pdb.py>--------------------------
# x_pdb.py

x = "7"
def f():
     pass
less ="2"
x = int(x)
less = int(less)
less = 8

# In Emacs23:
# M-x pdb x_pdb.py
'''
Current directory is ~/tmp/python/
 > /home/aroldo/tmp/python/x_pdb.py(1)<module>()
-> x = "7"
(Pdb) n
 > /home/aroldo/tmp/python/x_pdb.py(2)<module>()
-> def f():
(Pdb) x
*** NameError: name 'less' is not defined
(Pdb) n
 > /home/aroldo/tmp/python/x_pdb.py(4)<module>()
-> less ="2"
(Pdb) n
 > /home/aroldo/tmp/python/x_pdb.py(5)<module>()
-> x = int(x)
(Pdb) x
*** TypeError: unsupported operand type(s) for |: 'str' and 'str'
(Pdb) n
 > /home/aroldo/tmp/python/x_pdb.py(6)<module>()
-> less = int(less)
(Pdb) n
 > /home/aroldo/tmp/python/x_pdb.py(7)<module>()
-> less = 8
(Pdb) x
7
(Pdb) n
--Return--
 > /home/aroldo/tmp/python/x_pdb.py(7)<module>()->None
-> less = 8
(Pdb) x
15
(Pdb)
'''
#
# Emacs:
# GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.1) of 
2011-03-04 on palmer, modified by Debian
#
# Python:
# 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
# [GCC 4.4.3]
#
# Ubuntu:
# LSB Version:    
core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:desktop-3.1-ia32:desktop-3.1-noarch:desktop-3.2-ia32:desktop-3.2-noarch:desktop-4.0-ia32:desktop-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-3.2-ia32:printing-3.2-noarch:printing-4.0-ia32:printing-4.0-noarch:qt4-3.1-ia32:qt4-3.1-noarch
# Distributor ID:    Ubuntu
# Description:    Ubuntu 10.04.2 LTS
# Release:    10.04
# Codename:    lucid

--------</x_pdb.py>

Am 27.10.2011 08:28, schrieb Andi Albrecht:
> Hi Aroldo,
>
> ich kann bei mir (Ubuntu 11.10, Emacs 23.3.1) das nicht reproduzieren.
> "M-x pdb" funktioniert wie erwartet... "less" funktioniert in einer
> normalen Shell bei dir?
>
> Grüße,
>
> Andi
>
>
> 2011/10/26 Aroldo Souza-Leite<asouzaleite at gmx.de>:
>> Hallo Liste,
>>
>> dieser Fehler bezieht sich nicht direkt auf das Projekt
>>
>> https://bitbucket.org/aroldo/pymode
>>
>> , wohl aber auf das allgemeinere Thema "Emacs für Python-Programmierer."
>>
>> Mein 'pdb' direkt aus der Linux-Konsole scheint ok zu funktionieren, aber
>> von Emacs aus bekomme ich folgende Probleme:
>>
>> ---------<emacs23>  -----
>> M-x pdb currywurst.py
>>
>> Current directory is ~/tmp/python/
>>> /home/aroldo/tmp/python/currywurst.py(1)<module>()
>> ->  cw = 'Currywurst'
>> (Pdb) n
>> --Return--
>>> /home/aroldo/tmp/python/currywurst.py(1)<module>()->None
>> ->  cw = 'Currywurst'
>> (Pdb) n
>> --Return--
>>> <string>(1)<module>()->None
>> (Pdb) p cw
>> *** NameError: NameError("name 'less' is not defined",)
>> (Pdb)cw
>> *** NameError: name 'less' is not defined
>> (Pdb)
>> ----------</emacs23>
>>
>> Und mit Emacs24 ist es noch schlimmer, der Fehler passiert schon beim Befehl
>> 'python-send-buffer':
>>
>> ---------<emacs24>
>> M-x python-send-buffer
>> M-x python-switch-to-python
>>
>>
>>>>>    File "<stdin>", line 1
>>     import emacs|less
>>                 ^
>> SyntaxError: invalid syntax
>>>>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in<module>
>> NameError: name 'emacs' is not defined
>> --------</emacs24>
>>
>> Wobei der PDB-Fehler gleichermaßen in emacs23 und in emacs24 auftritt.
>>
>> An PDB selbst scheint es nicht zu liegen:
>>
>> ----------<PDB>
>> aroldo at aroldo-laptop:~/tmp/python$ pdb currywurst.py
>>> /home/aroldo/tmp/python/currywurst.py(1)<module>()
>> ->  cw = 'Currywurst'
>> (Pdb) n
>> --Return--
>>> /home/aroldo/tmp/python/currywurst.py(1)<module>()->None
>> ->  cw = 'Currywurst'
>> (Pdb) p cw
>> 'Currywurst'
>> (Pdb)
>> --------------</PDB>
>>
>> Die 'efp'-Module sind in meinem '.emacs.d' noch nicht aktiv.
>>
>> Ich Benutze Ubuntu 10.04 Lucid Lynx und Python-2.7.
>>
>> Ich kann mich nicht daran erinnert, irgendwo in meiner Erweiterungen von
>> '.baschrc' irgendwas mit 'less' für Emacs
>> eingebaut zu haben.
>>
>> Hat jemand eine Ahnung, wo ich der Fehler suchen könnte? Bin dankbar für
>> jeden Tipp.
>>
>>
>> Grüße.
>>
>> Aroldo.
>>
>>
>>
>>
>>
>>
>>
>> ________________________________________
>> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet
>> zu Koeln
>> Nachrichten an: python-users at uni-koeln.de
>> Abonnement und Benutzereinstellungen:
>> https://lists.uni-koeln.de/mailman/listinfo/python-users
>> Listenarchiv: https://lists.uni-koeln.de/pipermail/python-users/
>>
>> pyCologne Homepage: http://pycologne.de/
>>
> ________________________________________
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
> Nachrichten an: python-users at uni-koeln.de
> Abonnement und Benutzereinstellungen: https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv: https://lists.uni-koeln.de/pipermail/python-users/
>
> pyCologne Homepage: http://pycologne.de/




Mehr Informationen über die Mailingliste python-users