[Python] Fatal Python error: (pygame parachute) Bus Error

2008-10-01 Per discussione [EMAIL PROTECTED]
lancio python 2.4, importo la libreria pygame, e qualsiasi cosa faccia 
nel comando successivo, scatta un messaggio di abort

sicuramente ha 
dei problemi con pygame ma da newbie nn so da dove iniziare, ho cercato 
sul web e nn trovo una soluzione


Python 2.4.5 (#1, Sep 16 2008, 16:14:
19) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", 
"copyright", "credits" or "license" for more information.
>>> import 
pygame
>>> 1 + 1
Fatal Python error: (pygame parachute) Bus Error
Abort 
trap





___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fatal Python error: (pygame parachute) Bus Error

2008-10-01 Per discussione Masci
2008/10/1 [EMAIL PROTECTED] <[EMAIL PROTECTED]>
>
> lancio python 2.4, importo la libreria pygame, e qualsiasi cosa faccia
> nel comando successivo, scatta un messaggio di abort
>
Che versione di pygame?

Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemi con l'encoding/decoding dei locales

2008-10-01 Per discussione michele
On Wed, Oct 1, 2008 at 1:08 AM, Daniele Varrazzo <[EMAIL PROTECTED]> wrote:
>
>> input = open('foo.img','rb').read().decode('ISO-8859-1')
>
> Direi che non ha senso usare un encoding testuale per codificare
> un'immagine.

Sono d'accordo. Più avanti ti spiego perché sono stato costretto ad  
utilizzarli.

>> square = java.encoding(input)
>>
>> output = java.decoding()
>>
>> fd = open('foo_decode.img','wb')
>> fd.write(output.encode('ISO-8859-1'))
>> fd.close()
>> sys.exit(0)
>>
>> java.encoding e java.decoding sono due metodi che, rispettivamente,
>> prendono come argomento una java String e restituiscono una java
>> String.
>
> ok... e cosa fanno? Ho provato a cercare in
> http://jpype.sourceforge.net/doc/user-guide/userguide.html ma non ho
> trovato niente.

Sono due metodi di una libreria proprietaria che sto usando.
La segnatura di encode è (String data), mentre quella di decode è void.

>> JPype si occupa del bridging e converte una java String in una
>> python str o unicode string, e viceversa. Di conseguenza, input e
>> output, nel mio programma, sono due unicode.
>>
>> Qual è il problema? Dovrei ottenere un output identico all'input
>> (byte per byte), ma non succede.
>
> E cosa ottieni? Maggiori informazioni potrebbero aiutarci a diagnosticare
> il problema.

Ok, il problema nasce dal fatto che se all'encoder passo una stringa  
fatta in questo modo, python si lamenta:

input = open('foo.img','rb').read()

Traceback (most recent call last):
   File "testing.py", line 32, in 
 d = encoder.encode(input)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xdc in position  
6: ordinal
not in range(128)

L'unico modo per non avere il decodeerror, è di fare il decode della  
stringa in input:
input = open('foo.img','rb').read().decode('ISO-8859-1')

ma a quel punto come sappiamo non ottengo il risultato corretto.
Sospetto che sia JPype che vuole una conversione forzata da str a  
unicode, ma perché lo forza? (vedi più avanti un caso in cui la  
conversione non viene forzata).
Ho provato anche a dare un'occhiata qui:
http://jpype.sourceforge.net/doc/user-guide/userguide.html#conversion
ma si indica chiaramente che le python str vengono convertite in java String.

> Non so cosa stai facendo: se devi lavorare con un'immagine (o altri dato
> binari), unicode non è lo strumento adatto. Se devi lavorare con del
> testo, unicode può essere la cosa giusta, ma l'encoding di partenza devi
> conoscerlo.

Devo soltanto chiamare la libreria di encoding passando come argomento  
una stringa con il contenuto del file (il file può essere qualsiasi,  
in questo caso è un file video). Il contenuto del file è rappresentato  
in una stringa (da python); nota che se il contenuto del file fosse,  
supponiamo:

input = "foo123"
d = encoder.encode(input)

in questo caso l'encoder funziona correttamente (e python non lamenta  
un unicodeerror).

La domanda è quindi: supposto che la libreria funziona correttamente,  
e nel caso in cui la stringa di input in python sia una semplice  
stringa di testo lo script funziona correttamente, perché sono  
costretto a fare il decode del file binario che passo allo script?

Grazie


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemi con l'encoding/decoding dei locales

2008-10-01 Per discussione Daniele Varrazzo


On Wed, 01 Oct 2008 14:33:23 +0200, [EMAIL PROTECTED] wrote:

> Ok, il problema nasce dal fatto che se all'encoder passo una stringa  
> fatta in questo modo, python si lamenta:
> 
> input = open('foo.img','rb').read()
> 
> Traceback (most recent call last):
>File "testing.py", line 32, in 
>  d = encoder.encode(input)
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xdc in position  
> 6: ordinal
> not in range(128)

Cos'e' "encoder" alla riga 32 di testing.py?

Tanto per chiarirci, anche se i codec del python sono generice
trasformazioni biunivoche, quando si parla di testo di solito si intende:

- encode: da unicode a str (es. iso-8859-1 o utf8)
- decode: da str a unicode.

Quindi, se testing.py sta provando a fare un "encode" sta in effetti
aspettando un unicode (come tu gli passi). Se non ottieni il risultato
atteso e' probabilmente perche' questo oggetto "encoder" non encoda allo
stesso modo di come tu hai effettuato il "decode" dopo aver letto il file.
A meno che l'encoder non sia qualcosa di "strano" (es. un compressore):
come e' costruito quell'encoder?

La cosa curiosa e' pero' la presenza di questa operazione
"encoder.encode(input)" che fa da filtro. Che ci fa li'? Guardando il
messaggio di errore sembra un encoder ascii, il che vuol dire che non sa
lavorare con caratteri > 127: sicuro che ci debba stare?

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] R: Re: Fatal Python error: (pygame parachute) Bus Error

2008-10-01 Per discussione [EMAIL PROTECTED]
cmque il problema ho visto nn tratta solo incompatibilita' con pygame, 
probabilmente nn risiede solo la'

se uso l'interprete con delle banali 
funzioni di addizione, minimo al secondo comando mi lancia un 
genericissimo "bus error"

ragazzi nn so dove mettere le mani


Python 
2.4.5 (#1, Sep 16 2008, 16:14:19) 
[GCC 4.0.1 (Apple Inc. build 5465)] 
on darwin
Type "help", "copyright", "credits" or "license" for more 
information.
>>> 1+2
3
>>> 2
Bus error



___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python