Ú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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
Ü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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Ü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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
válasz justmemory #722 üzenetére
Köszönöm a választ, de sajnos így is hasonló hibát dob...
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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.Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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 ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
-
Ü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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
Ü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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Ü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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
válasz velizare #1085 üzenetére
Ok, de úgy hívnám meg, hogy
droid.makeToast("something")
, erre kapom ezt:AttributeError: type object 'Android' has no attribute 'makeToast'
Pedig van, hiszen a fentebb vázolt megoldással működik.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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 ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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 ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Üdv!
Tudtok ajánlani aszinkron támogató Firebase könyvtárat?
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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 ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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 ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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?
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
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")
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
Új hozzászólás Aktív témák
- Trollok komolyan
- Elektromos autók - motorok
- Hardcore café
- Elite: Dangerous
- Letartóztatták a bitcoin-Jézust
- LG 34GS95QE-B: OLED paneles, ívelt gamer monitor
- Milyen légkondit a lakásba?
- Alacsony fogyasztású, 128 GB-os szervermemóriát kínál a Micron
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- Ingatlanos topic!
- További aktív témák...
- Xiaomi Redmi Buds 3 Lite, Vezeték nélküli fülhallgató, Fekete + szilikon védőtok
- Star Wars - Az eredeti trilógia - DVD kiadás (2022)
- Corsair 110Q ATX Gépház Eladó!
- Dell Latitude 3410 Quad Core i5- i5-10210U 10 generációs laptop 8 GB DDR4 SSD jó akkumulátor
- Star Wars - The Rise of Skywalker - 4K UltraHD Steelbook kiadás
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen