Permalänk

Python problem

Hej!

Jag har lite frågor om programmering i språket python som jag hoppas någon kunnig forummedlem kan hjälpa mig med.

Det är så att jag skulle vilja kompilera en .py fil till ett färdigt program som jag kan dela ut enkelt.. Det ska helst fungera på de flesta datorer. Programmet är en quiz som hjälper att trycka in latinska namn på växter, ett slags läxförhörsprogram!

Programmet fungerar perfa när jag kör det i 'idle' men när jag kör det från command så funkar inte åäö, det blir konstiga tecken. Hur hanterar man åäö på ett vettigt sätt, finns det nån kod som hjälper till?? Jag har lagt till

# -*- coding: ISO-8859-1 -*-

i koden men det hjälper visst inte när man kör det från command...
Jag vet att man skall undvika dessa tecken när man programmerar men jag behöver dem för de svenska växtnamnens skull.

Jag har prövat att kompilera programmet med py2exe men jag förstår inte riktigt vilka filer som behövs när jag ska skicka iväg det till mina polare... åäö funkar heller inte. Är det kanske nån kodsnutt jag skall lägga till i py2exe:s setupfil för att få bukt med åäö-problemet?? Man måste väl ändra 'encoding' på nått vis. Jag har ingen aning om hur jag skall göra!!

Hoppas ni förstår vad jag pratar om här, jag är själv rätt förvirrad!
Tacksam för svar!!

MVH/Holdsworth

Visa signatur

A. Holdsworth

Permalänk
Medlem

Jag är ganska osäker, men kan du inte prova en annan tecken-kodning?

Visa signatur

Primär - C2D T6500 :: 4GB :: Mobility 4570.
Sekundär - AMD64x2 6000+ :: 2GB :: 8800GT 1GB

Permalänk
Medlem

Problemet är att kommandotolken som default inte kör med ISO-8859-1 (eller ens Windows-1252 som är standard i Windows annars), utan code page 850. Där t.ex. Å i Windows-1252 har position 197 i teckentabellen, så hittar vi Å i cp-850 på position 143. 197 i cp-850 är istället tecknet ┼. Så det kan lätt bli lite tokigt.

http://en.wikipedia.org/wiki/Code_page_850
http://en.wikipedia.org/wiki/Windows-1252

Du kan nog komma runt det om du har u-prefix på dina strängar. Nedanstående funkar i kommandotolken för mig.

# -*- coding: ISO-8859-1 -*- print u"ÅÄÖ åäö éáú ñõã"

Permalänk

Tack badboll, det där u:et räddade mitt program! :up::)
Tänk att en liten bokstav kan göra så mycket!
Jag stötte dock på lite problem med raw_input men jag löste det med den här snutten:
(hittad med hjälp av nätet)

Citat:

import sys
svar1=raw_input("Svar: ").decode(sys.stdout.encoding)

Nu ska jag bara kompilera det. Jag har prövat att följa den här guiden:

http://www.py2exe.org/index.cgi/Tutorial

Kompileringen funkar finfint ser det ut som, programmet fungerar och åäö visas som de skall! Det verkar dock, enligt guiden, som att man måste ha tillgång till .dll filer från 2008 års version av Visual studio för att man skall få ihop ett program man kan dela ut till andra...(eftersom att jag använt python 2.6.4) Finns dessa filer som behövs att ladda ned någonstans? jag har nämligen inte visual studio.

Finns det något annat sätt att gå till väga än vad guiden beskriver?

MVH/Holdsworth

Visa signatur

A. Holdsworth

Permalänk
Medlem

Du skulle kunna prova http://www.pyinstaller.org/ . Jag vet själv inget om det, men alternativ till (det onödigt komplicerade) py2exe borde finnas, bara man letar.

Annars så har jag den DLL du behöver (rätt version och allt). Vi kan lösa det över PM om du vill ha den.