Python33

Tags:    executable script

Hej

Hvad pokker er det jeg ikke forstår?

Jeg ønsker at lege med Python på min windows 8 platform. Jeg har derfor installeret Python3.3.2 og er begyndt at lege med script

Det funger fint i editoren (Python IDLE)men jeg kan ikke finde ud af at lave executable script.
Efter en del søgning får jeg gang på gang den samme løsning.
chmod +x [mit script navn] og får derefter fejlmeddelelse invalid syntax.

Så mit spørgsmål er bare. Hvordan laver jeg et executable script

MVH
Jan






6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
chmod er en kommando indenfor unix/linux-operativsystemer. Den tillader at en fil kan ekserkveres. Hvis det var et 'rigtigt' program så ville den bare køre, ellers ville den kigge på om filen havde en Shebang, hvilket kunne se sådan her ud for et python program:
Fold kodeboks ind/udKode 


Den kører programmet 'env' med parameteren 'python. Det returner en sti til Python, som så kører filen. Så hvis din fil hed program.py ville den først finde ud af hvor python lagde henne når du prøver at køre program.py; lad os sige /usr/bin/python. Så ville operativsystemet udføre kommandoen:
/usr/bin/python program.py

Hvilket svarer til at køre pythonfortolkeren og sende dit program med som parameter. Det fungerer faktisk på samme måde på Windows (undtagen man bruger ikke Shebang men 'associationer', se senere) det bliver bare vidst anderledes. Du kan starte dit program sådan her f.eks.:
Fold kodeboks ind/udKode 


Men faktisk burde det være meget nemmere. Hvis du har installeret Python via. en installer, burde filer du gemmer med endelsen .py have et python ikon, og du burde bare kunne dobbeltklikke på filen for at køre den. Bemærk dog at hvis dit program ikke beder om input fra brugeren så bliver dit program måske udført meget hurtigt.

(Det er faktisk sådan at en bruger starter de fleste programmer på windows. F.eks. når du installerer MS Word, siger installeren at den gerne vil have at .docx filer started med word. Så når du dobbeltklikker på en Word fil, så kører den faktisk noget lign.:
STI\HER\TIL\winword minfil.docx).



Indlæg senest redigeret d. 24.09.2013 12:15 af Bruger #14645
Nu tænker jeg på hvis du bare kører den via konsol?



Hej

Jep. Men når jeg søgte på executable Pyton script i windows kom denne kommando op som eksempel. Jeg troede derfor i min naivitet at da jeg installerede Python command line så blev denne funktionalitet også installeret.

Jeg har ændret miljøvariablen PATHHEX så denne indeholder .PY og jeg har indsat stien C:\Python33\ i variablen PATH.

Nu kan jeg dobbelt klikke på filen og den køre men jeg får stadig fejl hvis jeg forsøger at afvikle scriptet fra en f.eks. en kommandopromt.

Jeg skriver


>>c:\python33\python.exe "helloworld.py"

Og får fejl

c:\python33\python.exe: can't open file 'helloworld.py': [Errno 2] No such file
or directory

Skriver jeg c:\python33\python.exe starter Python fint og helloworld.py ligger i samme bibliotek.

Så jeg tror ikke jeg helt har fattet hvordan Python fungere under windows



Hvad sker der hvis du bare kører helloworld.py uden stien til Python.exe ?



Hej

Hvis jeg bare køre den (Dobbelt klik) ser det ud til at den afvikles via Pyton IDLE (Shell)som script i denne. Der går dog kun et split sekund.

Men som jeg har forstået det så afvikles .py via konsollen, mens pyw skulle kunne afvikles selvstændigt.

I Linux/Unix ville jeg bruge chmod.
Men hvordan pokker gør jeg det i windows. I min verden skal der ske noget med scriptet for at gøre det til et standalone program.

Jeg kan se at der findes et program der hedder py2exe men det virker ikke til Python33.

MVH

Jan



Hej

Har fundet ud af det. Brugte programmet cxfreeze script som gør arbejdet for mig. Mente nok at det kunne lade sig gøre. Men ellers tak for hjælpen.

Hej igen

så ikke lige dit sidste svar. Kan sagtens køre det som konsol men ville gerne kunne lave et standalone program. Men som sagt cxfreeze styre. :D



Indlæg senest redigeret d. 24.09.2013 20:09 af Bruger #17713
t