Kirjoittaja Aihe: .py tiedosto .exeksi  (Luettu 4666 kertaa)

Dain

  • Käyttäjä
  • Viestejä: 7
  • Ubuntu 10.04 LTS
    • Profiili
    • Mezumsnet
.py tiedosto .exeksi
« : 04.10.10 - klo:16.36 »
Morjensta!

Elikkä pitäis saaha .py tiedostot exeksi.

ongelma on se, että ei tunnu löytyvän mitään ohjelmaa jolla convertoida se.
Itehän ajelen tuota komentoriviltä, muttako pitäis saaha yhtä juttua varte muutettua se .exee...

Käytössä siis:

ubuntu 10.04 (ja sen mukana tullut python tulkki)

eli mikää py2exe ei kelpaa, ainakaa mulla ei pelittänyt se winellä.

Dain

peran

  • Vieras
Vs: .py tiedosto .exeksi
« Vastaus #1 : 04.10.10 - klo:17.05 »
Asennat ohjelman asennuksen yhteydessä pythonin, ja exe:n teet esim. C:llä, jolla teet systeemikutsun tyyliin....
Koodia: [Valitse]
system "python <con"

Siis nyt en muista tähin hätiin, mikä on Windowsissa /dev/stdin:tä vastaava virta, mutta siihen, ja sitten vain tulostelet sen.

Jos sekään ei toimi, niin tulosta tiedostoon aluksi sun python ohjelma, jonka jälkeen ajat sen yksinkertaisella python käskyllä:
Koodia: [Valitse]
system "python absoluuttinenpolku/ohjelma.py"

Ohjelma kannattaa sijoittaa käyttäjän omiin datoihin onkohan se Documents and Settings...
Hakemisto kannattaa lukea rekisteristä, niin toimii ehkä sekä Winessä että Windowsissa.

Jos käyttäjälle pitää antaa python ohjelma, niin silloin luulisi riittävän pelkkä pikakuvakkeen tekeminen.

snifi

  • Vieras
Vs: .py tiedosto .exeksi
« Vastaus #2 : 04.10.10 - klo:17.52 »
ei tunnu löytyvän mitään ohjelmaa jolla convertoida se.

Ei koska sitä ei ole tarkoitettu muunnettavaksi. Muunna mieluummin tehtävänantoa kuin ohjelmaasi.

hro1

  • Käyttäjä
  • Viestejä: 61
  • 12.04
    • Profiili
Vs: .py tiedosto .exeksi
« Vastaus #3 : 04.10.10 - klo:18.07 »

Dain

  • Käyttäjä
  • Viestejä: 7
  • Ubuntu 10.04 LTS
    • Profiili
    • Mezumsnet
Vs: .py tiedosto .exeksi
« Vastaus #4 : 04.10.10 - klo:20.37 »
Asennat ohjelman asennuksen yhteydessä pythonin, ja exe:n teet esim. C:llä, jolla teet systeemikutsun tyyliin....
Koodia: [Valitse]
system "python <con"

Siis nyt en muista tähin hätiin, mikä on Windowsissa /dev/stdin:tä vastaava virta, mutta siihen, ja sitten vain tulostelet sen.

Jos sekään ei toimi, niin tulosta tiedostoon aluksi sun python ohjelma, jonka jälkeen ajat sen yksinkertaisella python käskyllä:
Koodia: [Valitse]
system "python absoluuttinenpolku/ohjelma.py"

Ohjelma kannattaa sijoittaa käyttäjän omiin datoihin onkohan se Documents and Settings...
Hakemisto kannattaa lukea rekisteristä, niin toimii ehkä sekä Winessä että Windowsissa.

Jos käyttäjälle pitää antaa python ohjelma, niin silloin luulisi riittävän pelkkä pikakuvakkeen tekeminen.

En ole varma ymmärränkö kaikkea mitä sanot, ja sen vähän mitä ymmärrän en osaa toteuttaa. Eli siis esim. mitä tarkoitat tuolla ohjelman sijoittamisella käyttäjän omiin datoihin?

Lainaus
Ei koska sitä ei ole tarkoitettu muunnettavaksi. Muunna mieluummin tehtävänantoa kuin ohjelmaasi.

Ja tuo tarkoittaa?

Sori oon pikkuse alottelija tms. enkä oikee tunne termistöä vielä :(


E: asentelen nyt PyInstalleria, saa nähdä onnistuuko, mutta vaikuttaa siltä että se olisi ratkaisu ongelmaani.
« Viimeksi muokattu: 04.10.10 - klo:20.54 kirjoittanut Dain »

peran

  • Vieras
Vs: .py tiedosto .exeksi
« Vastaus #5 : 04.10.10 - klo:22.22 »
En ole varma ymmärränkö kaikkea mitä sanot, ja sen vähän mitä ymmärrän en osaa toteuttaa. Eli siis esim. mitä tarkoitat tuolla ohjelman sijoittamisella käyttäjän omiin datoihin?

Ehkä kannattaa yrittää käyttää voimavarat pyinstallerin perahtymiseen.

Lainaus
Ei koska sitä ei ole tarkoitettu muunnettavaksi. Muunna mieluummin tehtävänantoa kuin ohjelmaasi.

Ja tuo tarkoittaa?

Vaikka en ole kirjoittanutkaan tota, mutta oletamme ongelmasi olevan enemmänkin se, että käyttäjälle pitäisi tehdä helpoksi asentaa ja käynnistää ohjelma, kuin että pythonista tehdä siitä exe.

Sori oon pikkuse alottelija tms. enkä oikee tunne termistöä vielä :(

Kaikkihan me olemme joskus jossakin asiassa aloittelijoita.

E: asentelen nyt PyInstalleria, saa nähdä onnistuuko, mutta vaikuttaa siltä että se olisi ratkaisu ongelmaani.

Toivotaan sen ratkaisevan ongelmasi. Muista laittaa ketjun ensimmäiseksi viestin otsikkoon ratkaistu, mikäli ongelmasi selviää, ja kerro ratkaisu.

snifi

  • Vieras
Vs: .py tiedosto .exeksi
« Vastaus #6 : 04.10.10 - klo:23.05 »
Kysymyksestäsi ei ihan tarkkaan selviä, mikä on tiedostomuodon muunnoksen tarkoitus. Periaate on kuitenkin, että Python-ohjelmat käynnistetään aina komennolla

Koodia: [Valitse]
python ohjelma.py
Tämän voit sijoittaa .sh komentotiedostoon (Windowsissa .bat tms), ja antaa sille suoritusoikeudet. Linuksissa ohjelman saat myös käynnistymään automaattisesti lisäämällä Python-ohjelmaasi ensimmäiselle riville joko

Koodia: [Valitse]
#!/usr/bin/env python
tai
Koodia: [Valitse]
#!/usr/bin/python
riippuen hieman siitä kumpaa tapaa haluat käyttää, ja antamalla suoritusoikeudet +x valitsimella joko graafisesta käyttöliittymästä tai chmod-komennolla. Tällä tavalla voit myös määrittää, jos haluat suorittaa komennon eri Pythonin versiolla kuin mikä oletuksena on asennettuna, kirjoittamalla Python-tulkin koko polun ja nimen edelliseen, ja antamalla suoritusoikeudet.

Jos on kysymyksessä Windows-kone, ja on epäselvää onko Python edes asennettuna, tee silloin asianmukainen komentotiedosto, joka tarkistaa onko Python asennettuna ja ehdottaa automaattisesti Pythonin asentamista mikäli sitä ei ole asennettuna.

Python-kielisen ohjelman paketoimisesta exe-pakkaukseen ei sen sijaan ole mitään käytännön hyötyä. Jos linkität pakettiin ajonaikaisia kirjastoja, kasvaa paketin koko melkoisesti. Pythonin tapauksessa paketoiminen exe-pakettiin ei nopeuta ohjelman suoritusta, vaan hidastaa sitä ylimääräisen hypyn verran komentotulkista python-tulkkiin, sekä siirto- ja latausajan kasvuna.

Pythonia on periaatteessa mahdollista kääntää C-kielelle tai suoraan konekielelle, mutta usein on kyseenalaista kannattaako toimenpide tehdä. Pythonin kirjastorutiinit ovat käytännössä aina C-kielisiä rutiineja, eli ne on jo käännetty ja optimoitu kirjastotasolla, eikä niiden uudelleenkääntäminen tuo nopeusetua. Jos tarkoituksenasi on ohjelmoida esimerkiksi graafista piirtotehoa vaativia OpenGL-sovelluksia, kirjoita silloin koodi C-kielellä, ja luo siihen liittymä Pythonille. Piirtokäskyt ovat Pythonissa ja C-kielessä likimäärin samoja.

Dain

  • Käyttäjä
  • Viestejä: 7
  • Ubuntu 10.04 LTS
    • Profiili
    • Mezumsnet
Vs: .py tiedosto .exeksi
« Vastaus #7 : 05.10.10 - klo:07.20 »
Kiitokset kaikille vastanneille :) Kokeilen edellämainittuja konsteja, ja kerron sitten jos ongelmani ratkeaa.

odysseus

  • Vieras
Vs: .py tiedosto .exeksi
« Vastaus #8 : 05.10.10 - klo:15.47 »
Elikkä pitäis saaha .py tiedostot exeksi.

clip, clip...

ubuntu 10.04 (ja sen mukana tullut python tulkki)

Siis nyt en minäkään ymmärrä. Haluat tuon exe-muotoon, mutta olet Ubuntussa?
Tavallaan ymmärtäisin vaatimuksen, jos ajaisit sitä Windowsissa, jossa on exe-pääte on merkitsevä ja olemassa. mutta ei Linuxeissa ole exe-määritettä vaan ajettavilla ohjelmilla on execute-oikeus olipa pääte mikä tahansa (vaikka ilman päätettä)...

Linuxissa tee shell-scripti, joka ajaa tuon ja anna sille execute oikeudet. Windowsissa tee .bat tiedosto, jonne se käynnistyskomento (edellisten ohjeiden mukaan).

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: .py tiedosto .exeksi
« Vastaus #9 : 05.10.10 - klo:20.20 »
Tarkoitus on varmaan kehittää ubuntussa python ohjelmaa jota ajetaan myös windowsissa. Tosin eihän siihenkään sitä exe-päätettä tarvita, kuten edellä jo todettiin.

Dain

  • Käyttäjä
  • Viestejä: 7
  • Ubuntu 10.04 LTS
    • Profiili
    • Mezumsnet
Vs: .py tiedosto .exeksi
« Vastaus #10 : 05.10.10 - klo:21.07 »
Joo no siis tarkotuksena oli tehdä tuo että vois wintoosassaki ajaa. Joo kokeilen just tuota shell juttua... saa nähdä onnistuuko.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: .py tiedosto .exeksi
« Vastaus #11 : 05.10.10 - klo:22.37 »
Et tarvitse mitään shell scriptejä. Laita tiedoston alkuun shebang rivi
Koodia: [Valitse]
#!/usr/bin/python...ja merkkaa tiedosto ohjelmaksi kuten snifi neuvoi (chmod +x ohjelma.py). Linuxissa ei muuta tarvitse.

Windowsissa voit vastaavasti liittää .py tiedostot käyttämääsi python tulkkiin resurssienhallinnan kautta. Siis samaan tapaan kuin että kaikki .txt tiedostot avautuvat notepadiin. Tosin tämä toimii käytännössä kunnolla vain gui ohjelmien kanssa.

Minusta sekakäyttäjän kannattaa asentaa windowsiin jokin unix-tyylinen ympäristö, kuten cygwin ja siihen python, jolloin saat tutun komentorivin ohjelmien ajamista varten. Siellä myös shebang toimii. Olen tällä systeemillä kyhäillyt ja käyttänyt perl-ohjelmia. Python koodailusta ei siis ole paljon kokemusta, mutta olen em. tavalla käyttänyt pythonilla tehtyjä ohjelmia, kuten bzr tai rdiff-backup, sekä linuxissa että cygwin(dows)issa. Toimii. ;)