- Proxmox VE
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Windows 11
- DIGI internet
- Az USA nem akarja visszafogni Kína növekedését
- Kínában túl sok az EV, fokozódik az árháború
- Augusztustól nagyot változik a Shein élete
- Hálózati / IP kamera
- 3 évig még biztosan nem rendelhetünk Xiaomi EV-t
- Agyi chipes gyártóba fektetett a kriptocég
Új hozzászólás Aktív témák
-
Szevasztok!
Egy IPTV stream plugint szeretnék tervezni kodi(xbmc) alá.
Az xbmc plugin ugye python alapú, ezért is fordulok hozzátok.
Elkészítettem a kódot pár tutorial alapján, mert nem vagyok egy nagy pythonos, meg amit csináltam az is rég volt már...
Becsomagoltam és megpróbáltam feltenni a málnán futó openelecre, de hibával eldobta a telepítőt. Semmilyen log nincs, ami utalna erre. (legalábbis én nem találtam ilyet)
Maga a zip itt lenne: [link]
És itt van maga a python rész: [link]
Ránéznétek nekem, hogy mit ronthattam el?
Előre is köszönöm a válaszokat/tippeket/ötleteket!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
Üdv!
Szerettem volna őt lefordítani, gond nélkül felment. Viszont nem tudom mik a parancsok, illetve a __main__.py sincs benne, így nem tudok vele mit kezdeni. Pippel is próbáltam feltenni, ott sem működött pl az adb devices parancs... Doksit nem találtam hozzá. Honnan lehetne megtudni, h működőképes-e?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Üdv!
Próbálkozom egy s4la-s python (3.4) szkriptet összedobni. Eddig minden ment, viszont szégyenszemre pont az ifet nem sikerül rendesen beállítanom...
if next and url is None:
droid.makeToast('Exit...')
if url is not None:
name = droid.dialogCreateInput('Link neve','Mi legyen a megjelenő név): ')
droid.dialogShow()Tehát ha van next változó és az url változó nem kap értéket, akkor kill, ha pedig kap az url értéket, akkor menjen tovább a dialógussal. A gond az, hogy bármit teszek, feljön a dialógus...
Mi lehet a gond?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Nah, sikerült befejeznem a "kódot"!
Megy rendesen, de például a hosszú 'ö' (tehát ő)-vel nem tud mit kezdeni és ezt dobja:
UnicodeDecodeError: 'ascii' codec can't decode byte 0
xc5 in position 31: ordinal not in range(128)Olvasgattam, hogy hogyan lehetne megoldani a dolgot, de mindenhol csak azvan, hogy az "ő"-t adjam meg unicode szerű kódként. Itt viszont ez nem játszik, mivel user interakcióval töltödik fel a változó adattal...
Van rá más megoldás?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
válasz justmemory #722 üzenetére
Köszönöm a választ, de sajnos így is hasonló hibát dob...
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Sziasztok!
Egy újabb noob kérdésem lenne, megint az iffel kapcsolatban.
Tehát van egy dict globális változóm, ami 3 különböző értékpárt vehet fel, a user integrációjától függően.
Az integráció pedig egy dialógussal történik. Első eset, amikor a dict printelve így néz ki:
{'item':0}
2. eset:
{'item':1}
3. eset:
{'canceled':True}
Namost, próbáltam egy teszt ifet/elifet csinálni mindhárom esetre, de nem akar összejönni... Íme:
if response['item'] == 1:
print('1')
elif response['item'] == 0:
print('0')
else:
print('Kilépés...')
exit(0)Természetesen a print helyett functionokat hívok meg, de így egyszerűbb szemléltetni/kipróbálni Nektek.
Azt értem, hogy mi a gond, tehát, h ha canceled:1 van benne, akkor nincs item:1, vagy item:0 kulcs és ezért hal meg hibával... Csak azt nem tudom, hogy hogy lehetne helyesbíteni... Segítenétek?
Arra gondoltam, kevésbé szép megoldás alatt, hogy megnézem "stacked" iffel, hogy van-e a locals()-ban response['item'] és ha van, akkor fusson az a rész le, ami most if és elif, majd egy másik stacked ifben, ami response['canceled'] is in locals() lenne, berakom a mostani else-t.
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
válasz cousin333 #728 üzenetére
Van egy dialógusom két választási lehetőséggel. Ha az illető az elsőt választja, akkor
{'item' : 0}
kerül a response változóba dictként. Ha a másodikat választ, akkor ugyanez, csak egyessel lesz a változó.Ha pedig elutasítja (kilép), akkor
{'canceled' : True}
lesz a változóban. Na, én ezekrr szeretnék ifeket gyártani.Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Sajnos a dict típust nem én választottam, a dialógus így tölti fel a változót. Gondolom azért, mert van olyan dialógus, ahol egyszerre többet is kijelölhetek. De ez most nem ilyen. Ha meg sztringbe konvertálom, akkor sem érek vele sokat. De megoldottam már!
Valahogy így:
try:
if response['item'] == 1:
print('1')
elif response['item'] == 0:
print('0')
except KeyError:
print('Kilépés...')
exit(0)Először én is erre a stacked if-re gondoltam, de a try elvileg gyorsabb is. És így nem csak akkor lép vissza, ha canceled kulcs van a változóban, hanem nem várt, egyéb eseteknél is (persze csak KeyError-nál).
Azért köszi!
De a karakterkódolós hiba még mindig fennáll... Ahogy észrevettem, ha a
droid.dialogGetInput(név,szöveg)
-en keresztül kérem be a usertől a linket/szöveget, akkor az más kódolással érkezik, és ezért hal meg a kód a fentebb bemásolt ascii hibával. Hogy lehetne kideríteni a kódolást és megoldani azt, hogy kódolja át UTF-8-ba?[ Szerkesztve ]
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
-
Üdv!
Még csak most ismerkedem a nyelvvel, illetve azon belül a kivy-s GUI gyártással... Azt le kell szögezzem, hogy ez előtt még soha nem foglalkoztam GUI.val, csak CSS és Android fronton...
No, tehát lenne egy ilyen puritán tesztkódom(részlet):
def callback(instance):
print('The button <%s> is being pressed' % instance.text)
button = Button(text='Hello world', font_size=14,pos=(100,100))
button1 = Button(text='Dlrow olleh', font_size=14,pos=(200,100))
button.bind(on_press=callback)Igen, tudom gyönyörű.
Amit szeretnék, az egy űrlap gyártása egy pár checkbox, list és textbox segítségével. Nomeg ezzel a pár gombbal. A nagy kérdés csak az, hogy a gombokat a pos=(100,100) helyett hogyan tudom még rendezgetni?
Illetve tudtok jó tutorialt hozzá?
Ezer köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
Üdv!
Chromiumot szeretnék fordítani, de a gn tool, ami python2.7 alapú, nem akar elindulni...
Itt található a kódja. És ez maga a hiba:
Traceback (most recent call last):
File "/home/pisti/Asztal/depot_tools/gn.py", line 38, in <module>
sys.exit(main(sys.argv))
File "/home/pisti/Asztal/depot_tools/gn.py", line 33, in main
return subprocess.call([gn_path] + args[1:])
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format errorMit tudok ezzel kezdeni?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Sziasztok!
Van egy JSON objektumom (példa), amiből szeretném kinyerni az összes title kulcs értékét, majd ezt szeretném egy tömbbe feltölteni.
Pl így visszakapom az első title értéket:
print jsonobject[0]["items"][0]["title"]
Viszont a következő kód valamiért rossz, s nem jövök rá, hogy miért...:
titles = []
for file in jsonobject:
for item in file["items"]:
titles.append(item["title"])Mit kéne változtatnom?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Üdv ismét!
Most a következő feladatba tört bele a bicskám...
Adott az urllib2, és szeretném megkapni a PH! főoldaláról a Cookiekat, majd egy következő kérést is kéne végeznem, aminek már az előzőleg megkapott is Cookie-t kéne el kéne küldenie. Hogyan lehetséges ez?
Eddig így próbálkoztam:
import urllib2
from cookielib import CookieJar
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('https://prohardver.hu/index.html')
response = opener.open('https://prohardver.hu/tema/re_nassoljunk_nsa-310_es_az_ffp/friss.html').read()De ez így nem működik... Teszteltem ezzel az oldallal, de a cookiek nem mentek át.
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Sziasztok!
Py4A-ban (ami a Python3 for Android rövidítése) próbálgatom a szárnyaim. Itt van egy android 'library', amit így szoktak használni (az első két sor a lényeg, a Toast csak példahívás):
import android
droid = android.Android()
droid.makeToast("Hello World!")Ez működik szépen, viszont valamiért ugyanez az
from android import Android as droid
dob egy AttributeError-t, hogy az Android objektumnak nincsen makeToast attribútuma. Ez miért van? Gondolom rosszul importálok, de ha nem így, akkor hogyan kéne?Köszönöm a válasz(oka)t!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
válasz EQMontoya #1088 üzenetére
Ohh, valóban!
Viszont erre kapok egy szép
android.util.AndroidRuntimeException: No dialog to add button to.
hibát a konzolba, ha nem Toastot, hanem dialógust szeretnék megjeleníteni. Arra tudok tippelni az android.py ismerete nélkül, hogy van még valami fontos objektum/változó, ami így nem kerül betöltésre.Mindenesetre, akkor maradok a jól megszokott verziónál!
Más: Pyc kódot lehetséges importálni valahogy?
[ Szerkesztve ]
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
válasz cousin333 #1423 üzenetére
Sziasztok!
Python OOP esetében melyik könyvtárat érdemes HTTP kérések lebonyolítására használni? aiohttp-t, vagy requests a gyorsabb/jobb/megbízhatóbb?
Úgy vettem észre, hogy egyébként az aiohttp gyorsabb futást eredményez...
Szerk:
Bocs, nem válasz akart lenni!
[ Szerkesztve ]
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
válasz EQMontoya #1427 üzenetére
Köszönöm!
Végül mégis az aiohttp clientjét használtam, s nem bántam meg. Nagyon jól dokumentált, funkciódús dolog. Tökéletes a feladatra. Egy dolog hiányzik még, az pedig a timeout. Jelenleg az asyncio wait_for-ját használom, ami teszi szépen a dolgát, de érdekel, hogy lehet-e ezt valahogy "szebben" megoldani. Néztem a doksit, de nem találtam egyelőre erre vonatkozó információt.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Üdv!
Tudtok ajánlani aszinkron támogató Firebase könyvtárat?
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Adott egy listám telis tele magyar nevekkel (amiket egy formból nyerek ki). Van köztük ékezetes is. Hogy rendezem ABC sorrendbe őket úgy, hogy az "á," "é" stb ékezetes karakterek nem a lista végére kerülnek és lehetőleg a locale-t nem piszkálom. Vagy ha igen, kellene egy univerzális megoldás, ahol nem kell bemagolni a terület kódját.
Python 3.7
Köszönöm!
[ Szerkesztve ]
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
válasz Siriusb #2230 üzenetére
Nem sajnos, a környezeti változókat nem szeretném felülírni. Más miatt jobb az, amit a Docker alapból beállít.
A normalize jól néz ki, viszont van egy buktatója a dolognak, amire gondolni tudok:
>>> sorted(["Attila", "Adam"])
['Adam', 'Attila']A helyes sorrend Attila, Ádám lenne, hiszen az "á" később van. Az viszont egy okos meglátás, hogy ezen az úton eljárhatok, mondjuk egy dictionary-t felépítve, ahol minden nem angol ábécés karaktert, amire szükségem van felmappelek egy "x" hozzáadásával és az
"Ádám".maketrans(my_map_dict)
függvényt hívom segítségül. Remélve, hogy senki nevében nincs x. Tehát az Ádámból csinálok egy "Axdaxm"-ot. Vagy ha more failsafe megoldás kell, valami horribilis spec karakter sorozattal, mint a !! - !! fogok próbálkozni. Ez még csak ötlet, még nem tudom hol a bottleneckje a dolognak, de ideának működőképes. Csak fura, hogy nem találok stdlib megoldást a problémámra (elegáns módon). Még egy külső dependency-t meg ha lehet, mellőznék. Már így is több perc, mire a docker container feláll...az így kapott sorrendet visszavezesd az eredeti, ékezetes betűs listába
Erre van egy trükköm. A sorted fv rendelkezik egy "key" kwarg-al, ami fogad egy függvény referenciát. Ezt a függvényt hívogatja iteráláskor, ami megkapja az aktuális lista elemet és feladata, hogy visszaadja az elemet, ami alapján rendeznék. Ha ezen belül alakítok, akkor tudok rendezni mindenféle segéd lista nélkül. Nem szép ez se, de legalább nem lassú és teszi a dolgát.
Köszönöm a segítséget!
[ Szerkesztve ]
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Egyébként ilyen esetekben ha egy keepalive gondolom poller task futna a háttérben, de a kód többi része nem vészesen heavy, akkor melyiket célszerűbb meglépni? Külön szál mindenképp, vagy asyncio és a blocking metódusokat executorral hívni?
Ugye szálat nyitni erőforrás, míg az asyncio single-threaded, csak az executor híváshoz használna szálakat.
Így is úgyis ott a GIL block, soha nem lesznek a Python szálak párhuzamosan futtatva, de érdekel, hogy mikor melyiket célszerű használni.
Sok helyen azt hallottam, hogy asyncio-t akkor, ha IO orientált az app, pl REST API stb, szálakat meg CPU megerőltető folyamatoknál kell használni. De az utóbbit nem értem, ha én kiadok egy 9999999999 ** 9999999999-et, az elég CPU megerőltető, a GIL block miatt ugyanott vagyok, szálakkal se érek semmit.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Igen, nekem is így van megoldva a Discord bot. K8s podokra van osztva és load balanceolva van a forgalom.
Az tiszta, hogy a bot esetében az asyncio tökéletes. De érdekel, hogy most threadinget mikor érdemes használni.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Pedig a hibán 100% segít a python3 developer csomag felrakása. Nekem is volt ilyen gondom rengetegszer, hogy hiányolta a Python.h fejlécet. Viszont fedora alatt van egy csavar, nem python3-dev, hanem python3-devel a csomagnév:
dnf install python3-devel
De ha a conda megoldotta, nincs gond.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
-
-
válasz tmslevi #2960 üzenetére
Egyrészt megírták a printes hibát, hogy miért történik. Másrészt ez így nem fog menni. Az addig jó, hogy megkaptad a lefordított py fájlt. Viszont a pytransform.so/.dll (a kiterjesztés attól függ, hogy win/linux a futtató) mindenképp kelleni fog, az a deobfuscator runtime kvázi. Aztán leszeded a python forráskódot és azon belül a direktívát, amit a fórum említ, átírod, hogy printelje ki a frameket egy fájlba, majd lefordítod és berakod PATH-ba ezt a módosított pythont.
Majd futtatod vele az eredeti obfuszkált anyagot. Ha lefut, akkor a kód base64-ben elvileg benne lesz majd a fájlban. Kicsit spammy lesz, de benne lesz a lényeg.
Viszont! 1) nem teszteltem; 2) ezt mindenképp csak akkor csináld, ha saját kódról van szó és elveszett a forráskód, vagy a készítő engedélyezte a műveletet. Ha ezek egyike sem applikálható az esetedre, akkor bizonyára joggal volt levédve a szkript és maradjon is úgy. + Ez a megoldás csak akkor működhet, ha van licenced is, tehát az eredeti obfuszkált kód lefut és nem fut hibára, hogy nincs licenced.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
válasz cousin333 #3139 üzenetére
Én sem tudok olyan fájlrendszerről, ami tudna prependet. Simán beolvasnám az egész fájl tartalmát memóriába ha ilyen kéne egy read()-del, aztán hozzáfűzném az új adatot sima concattal "uj_sorok + fajl_tartalma", majd ezt írnám ki az eredeti fájl helyére.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Ha már szóba került a Flask, mi ez a hatalmas hype körülötte? Ok, hogy faék egyszerű használni, meg pár sor kóddal megvan egy kezdetleges api, de még ő maga sem ajánlja semmihez, max teszt környezethez a használatát. Olyan szinten lassú, meg ugye sync webszerver. Még ha lokálisan is kéne egy gépen valamit kiszolgálni se használnám, mert simán lehet, hogy amíg egy api hívás felfogja az egészet, a többi kiszolgálásával nem is fog foglalkozni.
De tényleg minden python webes tutorial úgy kezdi, hogy akkor api írás flask alapon... Ehhez képest az async variáns, a Quart alig kap említést pedig kb teljes mértékben kompatibilis. Én még úgy olvastam annó, hogyha web, akkor async (minimum). Akkor mi a létjogosultsága a Flasknak azon kívül, hogy mondjuk egy teszt környezetben lehessen használni?
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
Az ötlet kiváló, nem is akarok beleugatni, csak annyi, hogy van egy typod, tudtommal az opennek "encoding" a kwargja, nem encode. Illetve a belső zárójel az encoding elé kell, mert nem a join kwargja, hanem az opené:
my_file = open(os.path.join(BASE_DIR, "data.txt"), encoding="utf-8")
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
Új hozzászólás Aktív témák
- Samsung Galaxy S22 Ultra Eladó...
- Vostro 3591 15.6" FHD i5-1035G1 GeForce MX230 16GB 512GB NVMe magyar bill., gar
- ELADÓ 32 DB Nvidia RTX 3060 Ti és 8 DB Zotac Gaming Geforce RTX 3080 Trinity / KOMPLETT BÁNYAGÉP
- Intel NUC5CPYH (Celeron N3050, N3060, J3060) - 4GB RAM, 120GB SSD
- Corsair TX650 V2 650W 80+