👨💻 Hogyan tudok egy IGAZI programot készíteni ? (amit az asztalról exe fájlként meglehet nyitni) - nem pedig tinterrel...
Python nyelven kezdtem el tanulni, és szeretnék egy olyat alkotni (mondjuk python-al), hogy ERZSIKE néni leül a gép elé és az asztalon lévő programomat futtatni tudja (minden fajta pycharm/tkinter használata nélkül).
Egyből a programomat nyissa meg (minden fajta python fejlesztői környezet nélkül).
Mintha a windows PAINT-re kattintana, vagy az aknakeresőre.
Hát... végülis lehet Pythonban is, bár az a program is csak látszólag lesz "igazi exe", mert gyakorlatilag csak egy minimálisan szükséges futtató környezetet hozzácsapnak a kódhoz, és annyi. (Legalábbis az általam ismert Python "fordítók" így működnek. Ettől függetlenül nem kizárt, hogy létezik valódi fordító is.)
A programozási nyelvek, pontosabban azok gyakorlati megvalósításai alapvetően két kategóriába sorolhatók: értelmező, és fordító. Értelmezővel szokták pl. a Pythont megoldani, meg gyakorlatilag az összes szkriptnyelvet (meg annó a '80-as években a BASICet). Ilyenkor kell egy külső program (az értelmező), ami a forrást értelmezi, és végrehajtja. A másik kategória a fordító. Na, ez az, ami önmagában is futtatható .exe-t csinál. Jellemzően fordítóval megvalósított nyelvek pl. a C, C++, Pascal, C# (bár ott azért kicsit kacifántos a helyzet, mert igényel külső "segítséget" a .NET képében, de alapvetően a C# is .exe-t generál), Go, Rust, stb.
Egyébként ha jól be van állítva, egy szkriptet is le lehet futtatni dupla kattintással. Annyi kell hozzá, hogy fel legyen telepítve az értelmező (jelen esetben nem is maga a PyCharm, hanbem a Python), illetve hogy Windows alatt a .py kiterjesztéshez a Python értelmező legyen társítva, Linux, és UNIX-alapú rendszereken pedig az, hogy a shebang sor helyes legyen. (A szkript első sora, ami megadja, hogy hol található az értelmező. Pl.: #!/usr/bin/python.)
Igen, lehet exe fájlt készíteni, de az nem "valódi". Nem gépi kód általában (persze lehet hogy azt is meg lehetne oldani, de alapesetben ez nem az lesz). Szóval egy látszólag exe fájl, de a háttérben, ahogy a 2. válaszoló is írta, hogy egy összecsomagolt python környezetet használ, és nem egy gépi kódra fordult villámgyors programot.
Egyébként amikor én 1 db exe fájlba csomagoltam sokkal lassabb volt, mint amikor egy köntárba volt sok sok apróbb fájl. Ennek oka, hogy azt 1 buildelt exe fájlt előtte még a memóriába ki kell csomagolni és utána tud csak futni. Ezt minden alkalommal megcsinálni nem a legjobb. Érdemesebb köntárba több fájlba buildelni.
Python nyelven írt programot úgy lehet standalone, futtatható .exe-vé alakítani, hogy egy erre alkalmas program belepakolja egy .exe-be a futtató környezetet (interpretert) és a futtatandó fájlt, valamint annak tartozékait (grafikai elemek, hang, adat, dependencies, stb.) is.
Ez viszont azzal jár, hogy az így megkreált .exe irgalmatlanul lassú lesz, ahogy egy eképpen megalkotott p2p kliens (talán a bittorrent?) is az lett.
A python egyszerűen nem arra való, hogy ezen a nyelven idő- vagy sebességkritikus, desktop alkalmazásokat készítsenek.
#1-es vagyok.
#2, #3: Amit állítotok technikailag kb korrekt, bár én inkább úgy fogalmaznék, hogy a python kódból build során nem készül gépi kód. Ettől még a végén igazi exét fogsz kapni. De szerintem ami fontos, hogy a felhasználó szempontjából ez teljesen irreleváns. Javában is írtak anno desktop appokat, egy felhasználótól se hallottam, hogy arra panaszkodna, hogy ez "nem igazi exe".
Amit #4 ír, az is kb igaz: Egy felhasználók számára készült csomagban benne van a futtatókörnyezet (bár azért azt megjegyezném, hogy nem kell a teljes compiler, elég a byte-kód értelmező) + a te kódodból fordított python bytekód. Ez így mindig lassabb lesz, mintha natív kódot adnál az usernek.
> Ez viszont azzal jár, hogy az így megkreált .exe irgalmatlanul lassú lesz, ahogy egy eképpen megalkotott p2p kliens (talán a bittorrent?) is az lett.
Na, itt kezdődik a bullshit rész. Ha modern (nem több, mint 10-12 éves) a számítógéped, nem fogsz észrevenni ebből semmit. Én konkrétan a deluge nevű szoftvert használom torrent kliensnek. Python-ban íródott, egyáltalán nem lassú.
A desktop alkalmazások 99%-a nem teljesítménykritikus.
Ha körbenézel a neten, azt láthatod, hogy python-t használnak olyan szoftverek fejlesztésére is, ahol amúgy fontos, hogy gyors legyen.
Ez úgy lehetséges, hogy pythonhoz nagyon könnyű C-ben vagy C++ban modulokat írni. Azok a részek, amik teljesítmény-kritikusak, azokat nem Pythonban írod.
De csak azért, mert a szoftverednek van egy része, aminek gyorsnak kell lennie, az nem azt jelenti, hogy azoknál a részeknél, ahol nem kritikus a sebesség(például a GUI-t kezelő kódoknál) fel kéne adnod a python kényelmét.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!