[python] potvrzení o přečtení, doručení
Zdravím všechny, občas bych potřeboval od adresáta potvzení o přečtení či soručení. Používám konstrukci SMTPLIB. Poradí někdo, jak to udělat či vyžádat ? Díky V.L. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] dynamický vstup klávesnice do stránky s formulářem pod Windows
Zdravím, konečně jsem se vymotal z daňových a jiných povinností a začal jsem testovat tip na řešení: HTML: JS: $( document ).ready(function() { $('.monitored').keyup(function(){ if ($('.monitored').val().length > 23){ // trim and send the value to the server $.post( "listener.php", { value: $('.monitored').val().substring(0,23)} ); // empty the input $('.monitored').val(''); // maybe add delay? } }); }); Mám v tabulce uloženy všechny kódy tagů a jejich prezentační "číslo". Chtěl bych dosáhnout toho, že nějaký skript (v tvém případě "listener.php") sáhne pro "číslo" do tabulky a vrátí nalezené "číslo" nebo "nenašel". S tím problém nemám. Co ale nevím je, jak nalezené "číslo" dostanu do aktivní stránky, kde mám formulář s "input". Nějaký nápad či příklad ? Když použiji místo "$.post" například "localStorage", tak se v elementu "value" po správném počtu znaků "číslo" zobrazí: HTML: maxlength="24" class="monitored"> JS: $( document ).ready(function() { $('.monitored').keyup(function(){ if ($('.monitored').val().length > 23){ // Store localStorage.setItem("tag", $('.monitored').val().substring(0,23)); // Retrieve document.getElementById("value").innerHTML = localStorage.getItem("tag"); } $('.tag').val(''); } }); }); Díky za tipy, zdraví Vláďa Dne 31.3.2016 v 16:54 Martin Čech napsal(a): Co neco takoveho? https://jsfiddle.net/n0ata9q8/7/ Martin On Thu, Mar 31, 2016 at 10:03 AM Jirka Vejrazka mailto:jirka.vejra...@gmail.com>> wrote: Bohuzel, dnes nemam pristup k PC. Snad se ozve nekdo jiny... *From: *Ing. Vladislav Ludík *Sent: *čtvrtek, 31. března 2016 16:02 *To: *Konference PyCZ *Reply To: *Konference PyCZ *Subject: *Re: [python] dynamický vstup klávesnice do stránky s formulářem pod Windows AJAXem určitě ano. Bohužel moje pokusy byly neúspěšné. Nebyl by nějaký příklad kódu, který bych mohl vyzkoušet? Dne 31.3.2016 v 15:54 Jirka Vejrazka napsal(a): To je resitelne jednoduchym Ajaxem, ne? Nebo mi neco unika? Jirka *From: *Ing. Vladislav Ludík *Sent: *čtvrtek, 31. března 2016 15:48 *To: *python@py.cz <mailto:python@py.cz> *Reply To: *Konference PyCZ *Subject: *[python] dynamický vstup klávesnice do stránky s formulářem pod Windows Zdravím všechny, mám problém, který bych rád vyřešil lépe. Popis: Příruční čtečka UHF RFID čipů je připojena pomocí USB. Tato čtečka simuluje klávesnici. Webová aplikace běží na Windows, používám Cherrypy. To ale není podstatné. Kód je HTML a JS, popřípadě PHP. Po přiložení čipu odešle v mém případě čtečka číslo čipu, což je 24 znaků do_input_ pole formuláře. Po stisku _SUBMIT _se pak číslo dále zpracovává. Chtěl bych však vylepšit snímání znaků ze čtečky nejlépe tak, že stránka bude očekávat 24 znaků (jako z klávesnice) a poté je předá ke zpracování dynamicky sereru, například v nějakém časovém intervalu. Tedy bez ručního odesílání. Je to řešitelné ? Díky Vláďa ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz -- Ing. Vladislav Ludík Rožnov pod Radhoštěm vl...@ludik.cz 608 777 525 ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] dynamický vstup klávesnice do stránky s formulářem pod Windows
To vypadá velmi nadějně. Bohužel musím dnes odjet na Slovensko a vracím se až v neděli. Nestihnu to odzkoušet. Mám jen jednu pochybnost o funkci "listener.php". Jde o to, že má čtečka je aktivována modulem ( napsaným v C# ), který po spuštění běží na pozadí Windows. Jeho chování je takové, že po přečtení UHF tagu odešle interní znaky klávesnice na místo, kde je zrovna aktivní okno a kurzor myši. V mém programu je to input okno. Tam se znaky čteného tagu objeví. Má to pro zajímavost také tu nepříjemnou vlastnost, že pokud není klávesnice přepnutá do US, znaky jsou interpretovány zástupnými znaky, jak je kódování například klávesnice CES zobrazí. To ale umím překódovat, v tom problém není. Co se týká intervalu čtení, tam bude vhodné dát po vynulování pauzu určitě, čtečka je schopná načíst čip několikrát po sobě. Zatím díky za pomoc. Vláďa Dne 31.3.2016 v 16:54 Martin Čech napsal(a): Co neco takoveho? https://jsfiddle.net/n0ata9q8/7/ Martin On Thu, Mar 31, 2016 at 10:03 AM Jirka Vejrazka mailto:jirka.vejra...@gmail.com>> wrote: Bohuzel, dnes nemam pristup k PC. Snad se ozve nekdo jiny... *From: *Ing. Vladislav Ludík *Sent: *čtvrtek, 31. března 2016 16:02 *To: *Konference PyCZ *Reply To: *Konference PyCZ *Subject: *Re: [python] dynamický vstup klávesnice do stránky s formulářem pod Windows AJAXem určitě ano. Bohužel moje pokusy byly neúspěšné. Nebyl by nějaký příklad kódu, který bych mohl vyzkoušet? Dne 31.3.2016 v 15:54 Jirka Vejrazka napsal(a): To je resitelne jednoduchym Ajaxem, ne? Nebo mi neco unika? Jirka *From: *Ing. Vladislav Ludík *Sent: *čtvrtek, 31. března 2016 15:48 *To: *python@py.cz <mailto:python@py.cz> *Reply To: *Konference PyCZ *Subject: *[python] dynamický vstup klávesnice do stránky s formulářem pod Windows Zdravím všechny, mám problém, který bych rád vyřešil lépe. Popis: Příruční čtečka UHF RFID čipů je připojena pomocí USB. Tato čtečka simuluje klávesnici. Webová aplikace běží na Windows, používám Cherrypy. To ale není podstatné. Kód je HTML a JS, popřípadě PHP. Po přiložení čipu odešle v mém případě čtečka číslo čipu, což je 24 znaků do_input_ pole formuláře. Po stisku _SUBMIT _se pak číslo dále zpracovává. Chtěl bych však vylepšit snímání znaků ze čtečky nejlépe tak, že stránka bude očekávat 24 znaků (jako z klávesnice) a poté je předá ke zpracování dynamicky sereru, například v nějakém časovém intervalu. Tedy bez ručního odesílání. Je to řešitelné ? Díky Vláďa ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] dynamický vstup klávesnice do stránky s formulářem pod Windows
AJAXem určitě ano. Bohužel moje pokusy byly neúspěšné. Nebyl by nějaký příklad kódu, který bych mohl vyzkoušet? Dne 31.3.2016 v 15:54 Jirka Vejrazka napsal(a): To je resitelne jednoduchym Ajaxem, ne? Nebo mi neco unika? Jirka *From: *Ing. Vladislav Ludík *Sent: *čtvrtek, 31. března 2016 15:48 *To: *python@py.cz *Reply To: *Konference PyCZ *Subject: *[python] dynamický vstup klávesnice do stránky s formulářem pod Windows Zdravím všechny, mám problém, který bych rád vyřešil lépe. Popis: Příruční čtečka UHF RFID čipů je připojena pomocí USB. Tato čtečka simuluje klávesnici. Webová aplikace běží na Windows, používám Cherrypy. To ale není podstatné. Kód je HTML a JS, popřípadě PHP. Po přiložení čipu odešle v mém případě čtečka číslo čipu, což je 24 znaků do_input_ pole formuláře. Po stisku _SUBMIT _se pak číslo dále zpracovává. Chtěl bych však vylepšit snímání znaků ze čtečky nejlépe tak, že stránka bude očekávat 24 znaků (jako z klávesnice) a poté je předá ke zpracování dynamicky sereru, například v nějakém časovém intervalu. Tedy bez ručního odesílání. Je to řešitelné ? Díky Vláďa ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] dynamický vstup klávesnice do stránky s formulářem pod Windows
Zdravím všechny, mám problém, který bych rád vyřešil lépe. Popis: Příruční čtečka UHF RFID čipů je připojena pomocí USB. Tato čtečka simuluje klávesnici. Webová aplikace běží na Windows, používám Cherrypy. To ale není podstatné. Kód je HTML a JS, popřípadě PHP. Po přiložení čipu odešle v mém případě čtečka číslo čipu, což je 24 znaků do_input_ pole formuláře. Po stisku _SUBMIT _se pak číslo dále zpracovává. Chtěl bych však vylepšit snímání znaků ze čtečky nejlépe tak, že stránka bude očekávat 24 znaků (jako z klávesnice) a poté je předá ke zpracování dynamicky sereru, například v nějakém časovém intervalu. Tedy bez ručního odesílání. Je to řešitelné ? Díky Vláďa ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] přepínaní klávesnice US-CS
win32api jsem nahrál spolu s pywin32 pro python 2.7.3 Problémem ale zůstává, že konstrukce: import win32api win32api.LoadKeyboardLayout('0409',1) # to switch to english nepřepne na anglickou klávesnici. Poradí někdo ? Díky Vláďa ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] přepínaní klávesnice US-CS
Zdravím všechny, řeším problém přepínání klávesnice US-CZ za běhu programu. Mám python 2.7.1 a našel jsem možnost například: import win32api win32api.LoadKeyboardLayout('0409',1) # to switch to english # jako příklad: win32api.LoadKeyboardLayout("00010409",1) # to switch to Dvorak # nebo win32api.LoadKeyboardLayout("00020409",1) # to switch to Dvorak Kde bych našel win32api ? Nebo nějaké jiné řešení ? Díky Vláďa ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] UHF RFID čtečka
Dobrý den, víte co je zajímavé ? Přes stejný program serial v Pythonu, kterým čtu z Alienu se tato čtečka normálně připojí. Viz odpověď po inicializaci spojení: Serial(port='COM7', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=0L, rtscts=0L, dsrdtr=False) Přdtím jsem ji v demo progamu správně nastavil. Přiložením tagu nepískne, čtení skončí TimeOut. Data žádná nepošle. Pokud dám zápis nějakého textu, vrátí počet bytů textu. Pokud byste mi poradil jak z čtečky dostat ID tagu, tak mám hotovo. Dál už to umím. Děkuji a hezký den Vláďa Dne 17.5.2015 v 10:32 Dex napsal(a): Rychle jsem to prošel (nemám čas to pitvat detailně). Čtečka komunikuje přes COM, takže pyserial bude správná cesta. Dokumentace není nic moc, ale jsou tam příklady v C++, tak je můžete zkusit "překlopit" do Pythona. Nenašel jsem tam popsané jak komunikovat na "binární" úrovni bez ohledu na jazyk. To mne u zařízení tohoto druhu překvapuje a prostě bych napsal výrobci. Btw u takto drahé čtečky nepoužít FTDI je minimálně zvláštní... Dex On 17.5.2015 10:19, "Ing. Vladislav Ludík" wrote: Celá dokumentace je na adrese: http://www.security-warehouse.com/index.php/rfid-860-925-mhz-equipment/rfid-uhf-860-960-mhz-iso-18000-6b-6c-desktop-reader-writrer-ultra-thin-usb-with-sdk.html unzip heslo je securitywarehouse Mám ještě jednu čtečku Alien ALR-8800 a ta po zapnutí opravdu po přiložení čipu odešle ID tagu přes COM port Tato malá ruční čtečka ne. Potřebuje inicializaci a v demo od výrobce funguje. Já programuju web aplikace v Cherrypy a potřebuju ji nějak připojit. Nevím zazím jak. Dne 17.5.2015 v 9:50 Dex napsal(a): Je k té čtečce nějaký bližší popis? Obvod CP2102 je převodník USB <-> COM (podobně jako PL2303 nebo FTDI). Nejsem expert na RFID čtečky, ale ty dvě co jsem viděl po přiložení karty odeslaly sadu bajtů odpovídající ID karty. Stačilo je mít správně nainstalované a používat vhodnou rychlost. Dex On 17.5.2015 9:28, "Ing. Vladislav Ludík" wrote: Původně tam byl COM4, ale serial, nebo i hyperterminal se tvářili jako otevřené, ale čtečka nereagovala. Po přeinstalaci ovladačů COM port zmizel. Tak nevím jak to má být, protože v dokumentaci je nějaké: Dynamic library file name*: RfidApiLib.dll* a v příkazech například v popisu**aplikace:* * If(OpenCommPort(“COM1”,9600) == 0) MessageBox("success"); Else MessageBox("failed"); Ale nyní port nemám ! Přiznám se, že zatím nevím co dál. Dne 17.5.2015 v 9:11 Dex napsal(a): Zdravím, nechci Vás svést na špatnou cestu, ale netváří se ta čtečka jako COM port? Poznámka o CP2102 by o tom svědčila. Pak bych ovšem doporučil pyserial místo pyusb ;-) Jen nápad... Dex On 17.5.2015 8:30, "Ing. Vladislav Ludík" wrote: libusb0 jsem jsem měl nahrané, ale asi špatné verze. Teď jsem našel správnou verzi, libusb0 se nahrálo korektně. Čtečka pak zmizela ve správci zařízení z Portů (byl tam nějaký COM) a objevil se samostatný symbol pro usb jako libusb-32 devices s podsložkou CP2102 USB to UART Bridge Controller Když nyní dám usb.core.show_devices() vrátí mi: DEVICE ID 10c4:ea60 on Bus 000 Address 001, Specified at interface Takže idVendor=0x10C48 měl být 0x10C4 Po opravě se vše rozjelo. Zdá se, že jsem na dobré cestě. Děkuji za pomoc. Vláďa Dne 17.5.2015 v 2:43 Petr Messner napsal(a): Njn, když chceš hackovat, tak na to musíš mít křídla :) Z chyby 'generator' object has no attribute 'set_configuration' je zřejmé, že to usb.core.find vrací iterátor. No a proč to vrací iterátor? Protože deklarace té funkce <https://github.com/walac/pyusb/blob/a83f17e568bf893bed53fa984f00c1e168348cb9/usb/core.py#L1127> je deffind(find_all=False, backend=None, custom_match=None, **args): a když to voláš bez keyword argumentů, tak se jako find_all nastaví to 0x10C48, což se interpretuje podobně jako find_all=True. Takže o krok zpět k ValueError: No backend available. Podívej se do zdrojáku, co to dělá. Prochází to moduly usb.backend.libusb1, usb.backend.libusb0 a usb.backend.openusb a volá to jejich funkci get_backend(), která se snaží danou DLL (nebo .so) knihovnu načíst (protože usb.backend.* jsou jen ctypes wrappery "céčkových" knihoven). Takže problém je v tom, že žádnou z těch knihoven buď nemáš k dispozici, nebo ji pyusb nemůže najít. PM Dne 16. května 2015 16:28 "Ing. Vladislav Ludík" <mailto:vl...@ludik.cz>> napsal(a): Ještě chyby: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) hlásí chybu: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) File "build\bdist.win32\egg\usb\core.py", line 1199, in find raise ValueError('No backend available') ValueError: No backend available Když jsem změnil řádek na: dev = usb.core.find(0x10C48, 0xEA60) program projde dále
Re: [python] UHF RFID čtečka
Celá dokumentace je na adrese: http://www.security-warehouse.com/index.php/rfid-860-925-mhz-equipment/rfid-uhf-860-960-mhz-iso-18000-6b-6c-desktop-reader-writrer-ultra-thin-usb-with-sdk.html unzip heslo je securitywarehouse Mám ještě jednu čtečku Alien ALR-8800 a ta po zapnutí opravdu po přiložení čipu odešle ID tagu přes COM port Tato malá ruční čtečka ne. Potřebuje inicializaci a v demo od výrobce funguje. Já programuju web aplikace v Cherrypy a potřebuju ji nějak připojit. Nevím zazím jak. Dne 17.5.2015 v 9:50 Dex napsal(a): Je k té čtečce nějaký bližší popis? Obvod CP2102 je převodník USB <-> COM (podobně jako PL2303 nebo FTDI). Nejsem expert na RFID čtečky, ale ty dvě co jsem viděl po přiložení karty odeslaly sadu bajtů odpovídající ID karty. Stačilo je mít správně nainstalované a používat vhodnou rychlost. Dex On 17.5.2015 9:28, "Ing. Vladislav Ludík" wrote: Původně tam byl COM4, ale serial, nebo i hyperterminal se tvářili jako otevřené, ale čtečka nereagovala. Po přeinstalaci ovladačů COM port zmizel. Tak nevím jak to má být, protože v dokumentaci je nějaké: Dynamic library file name*: RfidApiLib.dll* a v příkazech například v popisu**aplikace:* * If(OpenCommPort(“COM1”,9600) == 0) MessageBox("success"); Else MessageBox("failed"); Ale nyní port nemám ! Přiznám se, že zatím nevím co dál. Dne 17.5.2015 v 9:11 Dex napsal(a): Zdravím, nechci Vás svést na špatnou cestu, ale netváří se ta čtečka jako COM port? Poznámka o CP2102 by o tom svědčila. Pak bych ovšem doporučil pyserial místo pyusb ;-) Jen nápad... Dex On 17.5.2015 8:30, "Ing. Vladislav Ludík" wrote: libusb0 jsem jsem měl nahrané, ale asi špatné verze. Teď jsem našel správnou verzi, libusb0 se nahrálo korektně. Čtečka pak zmizela ve správci zařízení z Portů (byl tam nějaký COM) a objevil se samostatný symbol pro usb jako libusb-32 devices s podsložkou CP2102 USB to UART Bridge Controller Když nyní dám usb.core.show_devices() vrátí mi: DEVICE ID 10c4:ea60 on Bus 000 Address 001, Specified at interface Takže idVendor=0x10C48 měl být 0x10C4 Po opravě se vše rozjelo. Zdá se, že jsem na dobré cestě. Děkuji za pomoc. Vláďa Dne 17.5.2015 v 2:43 Petr Messner napsal(a): Njn, když chceš hackovat, tak na to musíš mít křídla :) Z chyby 'generator' object has no attribute 'set_configuration' je zřejmé, že to usb.core.find vrací iterátor. No a proč to vrací iterátor? Protože deklarace té funkce <https://github.com/walac/pyusb/blob/a83f17e568bf893bed53fa984f00c1e168348cb9/usb/core.py#L1127> je deffind(find_all=False, backend=None, custom_match=None, **args): a když to voláš bez keyword argumentů, tak se jako find_all nastaví to 0x10C48, což se interpretuje podobně jako find_all=True. Takže o krok zpět k ValueError: No backend available. Podívej se do zdrojáku, co to dělá. Prochází to moduly usb.backend.libusb1, usb.backend.libusb0 a usb.backend.openusb a volá to jejich funkci get_backend(), která se snaží danou DLL (nebo .so) knihovnu načíst (protože usb.backend.* jsou jen ctypes wrappery "céčkových" knihoven). Takže problém je v tom, že žádnou z těch knihoven buď nemáš k dispozici, nebo ji pyusb nemůže najít. PM Dne 16. května 2015 16:28 "Ing. Vladislav Ludík" <mailto:vl...@ludik.cz>> napsal(a): Ještě chyby: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) hlásí chybu: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) File "build\bdist.win32\egg\usb\core.py", line 1199, in find raise ValueError('No backend available') ValueError: No backend available Když jsem změnil řádek na: dev = usb.core.find(0x10C48, 0xEA60) program projde dále, ale hlásí chybu: dev.set_configuration() AttributeError: 'generator' object has no attribute 'set_configuration' Co s tím dále, nevím. Díky Vláďa ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] UHF RFID čtečka
Původně tam byl COM4, ale serial, nebo i hyperterminal se tvářili jako otevřené, ale čtečka nereagovala. Po přeinstalaci ovladačů COM port zmizel. Tak nevím jak to má být, protože v dokumentaci je nějaké: Dynamic library file name*: RfidApiLib.dll* a v příkazech například v popisu**aplikace:* * If(OpenCommPort(“COM1”,9600) == 0) MessageBox("success"); Else MessageBox("failed"); Ale nyní port nemám ! Přiznám se, že zatím nevím co dál. Dne 17.5.2015 v 9:11 Dex napsal(a): Zdravím, nechci Vás svést na špatnou cestu, ale netváří se ta čtečka jako COM port? Poznámka o CP2102 by o tom svědčila. Pak bych ovšem doporučil pyserial místo pyusb ;-) Jen nápad... Dex On 17.5.2015 8:30, "Ing. Vladislav Ludík" wrote: libusb0 jsem jsem měl nahrané, ale asi špatné verze. Teď jsem našel správnou verzi, libusb0 se nahrálo korektně. Čtečka pak zmizela ve správci zařízení z Portů (byl tam nějaký COM) a objevil se samostatný symbol pro usb jako libusb-32 devices s podsložkou CP2102 USB to UART Bridge Controller Když nyní dám usb.core.show_devices() vrátí mi: DEVICE ID 10c4:ea60 on Bus 000 Address 001, Specified at interface Takže idVendor=0x10C48 měl být 0x10C4 Po opravě se vše rozjelo. Zdá se, že jsem na dobré cestě. Děkuji za pomoc. Vláďa Dne 17.5.2015 v 2:43 Petr Messner napsal(a): Njn, když chceš hackovat, tak na to musíš mít křídla :) Z chyby 'generator' object has no attribute 'set_configuration' je zřejmé, že to usb.core.find vrací iterátor. No a proč to vrací iterátor? Protože deklarace té funkce <https://github.com/walac/pyusb/blob/a83f17e568bf893bed53fa984f00c1e168348cb9/usb/core.py#L1127> je deffind(find_all=False, backend=None, custom_match=None, **args): a když to voláš bez keyword argumentů, tak se jako find_all nastaví to 0x10C48, což se interpretuje podobně jako find_all=True. Takže o krok zpět k ValueError: No backend available. Podívej se do zdrojáku, co to dělá. Prochází to moduly usb.backend.libusb1, usb.backend.libusb0 a usb.backend.openusb a volá to jejich funkci get_backend(), která se snaží danou DLL (nebo .so) knihovnu načíst (protože usb.backend.* jsou jen ctypes wrappery "céčkových" knihoven). Takže problém je v tom, že žádnou z těch knihoven buď nemáš k dispozici, nebo ji pyusb nemůže najít. PM Dne 16. května 2015 16:28 "Ing. Vladislav Ludík" <mailto:vl...@ludik.cz>> napsal(a): Ještě chyby: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) hlásí chybu: dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60) File "build\bdist.win32\egg\usb\core.py", line 1199, in find raise ValueError('No backend available') ValueError: No backend available Když jsem změnil řádek na: dev = usb.core.find(0x10C48, 0xEA60) program projde dále, ale hlásí chybu: dev.set_configuration() AttributeError: 'generator' object has no attribute 'set_configuration' Co s tím dále, nevím. Díky Vláďa ___ Python mailing list python@py.cz <mailto:python@py.cz> http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit:http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Podivné: MySQLdb pod Windows 7 nezapisuje do tabulky
Zdravím všechny. Narazil jsem na podivné chování modulu MySQLdb. Nainstaloval jsem ComplexWebServer.1.4.14.msi na Windows 7 - x64. V počítači je Python 2.7.3.msi + modul MySQL-python-1.2.3.win32-py2.7.exe Problém: Pokud čtu data z tabulky z localhost je vše v pořádku. Pokud ale zapisuju data do téže tabulky na localhost, data se nezapíšou, ale co je podivné, index v tabulce se incrementuje. Chyby syntaxe a jiné chyby jsou ověřením vyloučené. Přitom SQL příkaz pro výmaz dat tabulky projde a data vymaže. Pokud zapisuju data do tabulky na jiném serveru (s velmi starou databází), data se zapíšou. Pokud použiju PHP skript, data se na localhost zapisují. Zkoušel jsem jiné moduly, jiné instalace, mazání příznaku read only v adresářích, kam mysql píše, spouštět jako správce a všude se to chová stejně. I na Windows XP 32bit a VirtualBox se stejnými moduly. Se zápisem dat do tabulek instalovaných na jiných serverech s instalací modulu MySQLdb (debian) tento problém neexistuje. Jsem z toho dost smutný. Poradí mi někdo ? V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] stdout v subprocess
Ahoj, poradí někdo se získáním výstupu při použití subprocess ? Příklad: Soubor je uložen na vzdáleném serveru na sambě = zdroj. Chci jej načíst a uložit u sebe na mém serveru = cíl. Používám následující skript: /import subprocess def ctiSambu(zdroj, cil): 'Samba -> Server' command = [ 'sshpass', '-p', 'heslo', 'scp', '-P', '', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'LogLevel=ERROR', 'r...@server.domena.cz:/home/samba/disk/%s' % zdroj, cil ] prg = subprocess.Popen(command, shell=False, stdout=subprocess.PIPE) return prg.wait() zdroj = 'cteny_soubor' cil = 'uloziste' status = //ctiSambu(zdroj, cil) if status != 0: print 'nejaka chyba' // /Chyba vznikne například zadáním neexistujícího souboru apod. Můj dotaz se týká zjištění, jaká chyba způsobila nenulový status. Chybová zpráva se sice vypíše na konzolu, ale já ji však potřebuju pro další zpracování mít v proměnné. Poradí mi někdo ? ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] ssh klient pro python
Zdravím všechny, narazil jsem na problém, který se týká nespolehlivého ssh klienta z modulu paramiko. Když pomocí něj čtu data například z některých verzí Mikrotiku, například MikroTik RouterOS 5.17, stane se občas, že nedostanu kompletní data. Někdy načte vše, někdy jen něco. Jak kdy. Pokud se připojím přes PuTTy, je přenos vždy spolehlivý. Můj modul, který pak používám v mých programech je v příloze. Neví někdo kde bych měl hledat problém, popřípadě o spolehlivějším klientovi ? Děkuji V.L. """Modul pro zadavani prikazu pres ssh""" import paramiko import cmd import string class RunCommand(cmd.Cmd): """ Jednoduchy shell pro zadavani prikazu na adresu host """ prompt = 'ssh > ' def __init__(self): cmd.Cmd.__init__(self) self.hosts = [] self.connections = [] def do_add_host(self, args): """add_host Prida adresu host do seznamu """ if args: self.hosts.append(args.split(',')) else: print "pouziti: host " def do_connect(self, args): """ Pripoji se ke vsem adresam host ze seznamu """ for host in self.hosts: ipcko, user, pswd, port = host user = string.strip(user) pswd = string.strip(pswd) port = int(string.strip(port)) client = paramiko.SSHClient() client.set_missing_host_key_policy( paramiko.AutoAddPolicy()) client.connect(ipcko, username=user, password=pswd, port=port) self.connections.append(client) def do_run(self, command): """run Provede tento prikaz pro vsechny pripojene adresy ze seznamu """ if command: for host, conn in zip(self.hosts, self.connections): stdin, stdout, stderr = conn.exec_command(command) out = stdout.read() err = stderr.read() stdout.close() stderr.close() return out, err else: print "pouziti: run " def do_close(self, args): for conn in self.connections: conn.close() #!/usr/bin/python # -*- coding: utf-8 -*- from ssh import * def doSSH(host, cmd, user=_user, pswd=_pswd, port=_port): 'Provedeni prikazu SSH' con = ['%s,%s,%s,%s' % (host, user, pswd, port)] ssh = RunCommand() ssh.do_add_host(con[0]) ssh.do_connect(con) stdout, stderr = ssh.do_run(cmd) ssh.do_close(con) return stdout, stderr # atd.___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Problém Chrome v Cherrypy
Zdravím všechny ! Pro vlastní web na neveřejné síti používám Cherrypy. Nastavení configurace je standardní. V prohlížeči Mozilla Firefox funguje správně. V Chrome má ale tento problém: /13/Jun/2012:12:43:48 CONFIG INFO Server parameters: 13/Jun/2012:12:43:48 CONFIG INFO server.environment: development 13/Jun/2012:12:43:48 CONFIG INFO server.log_to_screen: True 13/Jun/2012:12:43:48 CONFIG INFO server.log_file: 13/Jun/2012:12:43:48 CONFIG INFO server.log_tracebacks: True 13/Jun/2012:12:43:48 CONFIG INFO server.log_request_headers: True 13/Jun/2012:12:43:48 CONFIG INFO server.protocol_version: HTTP/1.0 13/Jun/2012:12:43:48 CONFIG INFO server.socket_host: 192.168.100.100 13/Jun/2012:12:43:48 CONFIG INFO server.socket_port: 100 13/Jun/2012:12:43:48 CONFIG INFO server.socket_file: 13/Jun/2012:12:43:48 CONFIG INFO server.reverse_dns: False 13/Jun/2012:12:43:48 CONFIG INFO server.socket_queue_size: 5 13/Jun/2012:12:43:48 CONFIG INFO server.thread_pool: 10 13/Jun/2012:12:43:48 HTTP INFO Serving HTTP on http://192.168.100.100:100/ 77.48.4.128 - - [13/Jun/2012:12:43:53] "GET / HTTP/1.1" 200 61 "" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5" Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/cherrypy/_cpwsgiserver.py", line 234, in run request.parse_request() File "/usr/lib/pymodules/python2.7/cherrypy/_cpwsgi.py", line 169, in parse_request _cpwsgiserver.HTTPRequest.parse_request(self) File "/usr/lib/pymodules/python2.7/cherrypy/_cpwsgiserver.py", line 66, in parse_request request_line = self.rfile.readline() File "/usr/lib/pymodules/python2.7/cherrypy/lib/httptools.py", line 538, in readline data = self.rfile.readline(256) File "/usr/lib/python2.7/socket.py", line 476, in readline data = self._sock.recv(self._rbufsize) timeout: timed out /Nemá někdo zkušenost s vyřešením podobného jevu ? Zkoušel jsem různé způsoby konfigurace, ale bez úspěchu. Web sice pokračuje dále, ale nelíbí se mi to. Díky V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Jak získat název procesu když znám PID procesu
Zdravím všechny. Spouštím pythonovský program.py (pod Linuxem) a chci zajistit jeho stabilní chod i v nepředvídatelných režimech. Zatím to dělám tak, že program o sobě dává vědět a jiný program check.py to kontroluje. program.py je trvale spuštěn. Pokud check.py nedostane správnou odpověď a včas, nastartuje jej znovu. Při testech jsem zjistil, že občas po nepředpokládané chybě program neodpoví jak má, popřípadě včas. Abych vyloučil dvojí spuštění, hlídám jeho název a PID procesu: _prg = os.path.basename(sys.argv[0]) # název _pid = os.getpid() # PID Potřebuji zjistit podle názvu a PIDu, zda je spuštěný a existuje. Zatím to dělám přes subprocess, příkaz ps -d cmd = ["ps", "-d"] proces = subprocess.Popen(cmd, stdout = subprocess.PIPE) proces.wait() out = proces.stdout.read() out pak čtu a hledám potřebné. Mimochodem linuxovský příkaz ps -d | grep program.py, který by vyfiltroval jen to co hledám, funguje pod linuxem, ale přes subprocess ne. Hlásí: ERROR: Garbage option. Takže k mému konkrétnímu dotazu: existuje nějaký os příkaz nalezení PID podle jména programu ? Díky V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] PYTHONPATH
Ano, přečetl jsem si to. Je to však zásah, který nepřežije reinstalaci čehokoliv. Nakonec jsem se rozhodl pro tu nejtriviálnější cestu, jak zpřístupnit moje moduly: 1) do pracovního adresáře jsem vložil modul /mojemoduly.py/ s obsahem: /# Pridani vlastni cesty k mym modulum import sys _nova_cesta = "/cesta_k_mym_modulum" if not _nova_cesta in sys.path: sys.path.insert( 1, _nova_cesta) / 2) na začátku KAŽDÉHO mého programu, který využívá mé moduly dám: /import mojemoduly/ A je poznámka pro vývojáře pythonu: Nestálo by za úvahu přidat do systému jednoduchou funkci, například nějaký soubor python_path.pth, kde by se to dalo nastavit dodatečně a trvale kdykoliv po instalaci dodatečně ? Jinak díky za rady. V.L. Visgean Skeloru napsal(a): Zkoušel si to co jsem psal? A slightly less convenient way is to edit the site.py file in Python’s standard library, and modify sys.path. site.py is automatically imported when the Python interpreter is executed, unless the /-S/ switch is supplied to suppress this behaviour. So you could simply edit site.py and add two lines to it: Prostě stačí v kořenové složce projektu vytvořit site.py který upraví sys.path, je to oficiální postup. http://docs.python.org/install/index.html#modifying-python-s-search-path Jestli je to jeden projekt tak je to v pohodě a stačí upravit jenom ten jeden soubor... 2012/1/14 "Ing. Vladislav Ludík" mailto:vl...@ludik.cz>> Tak jsem si myslel, že jsem to vyřešil: do adresáře/etc/profile.d jsem vložil nový soubor local_python.sh který obsahuje: # doplnim cestu k mym modulum PYTHONPATH="/python/mojemoduly/":"${PYTHONPATH}" export PYTHONPATH Po reboot kontrola sys.path: ['', '/python/mojemoduly', '/etc/profile.d', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7'] zapíše správně moji cestu (sice i cestu '/etc/profile.d'), ale problém mám jinde. Spuštěním programu v crontab ten pak havaruje na tom, že nemůže naimportovat moje moduly. Pokusy s doplněním cesty přímo v crontab nebo nepřímo v cron.d nevedly k ničemu. Co s tím opravdu nevím. Díky za nové podněty. V.L. ___ Python mailing list Python@py.cz <mailto:Python@py.cz> http://www.py.cz/mailman/listinfo/python -- PGP pub key: http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com http://www.abclinuxu.cz/lide/visgean/gpg A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92 Jabber: visg...@jabber.org <mailto:visg...@jabber.org> | visg...@jabber.cz <mailto:visg...@jabber.cz> Github: http://github.com/Visgean ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 6783 (20120110) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] PYTHONPATH
Tak jsem si myslel, že jsem to vyřešil: do adresáře/etc/profile.d jsem vložil nový souborlocal_python.sh který obsahuje: # doplnim cestu k mym modulum PYTHONPATH="/python/mojemoduly/":"${PYTHONPATH}" export PYTHONPATH Po reboot kontrola sys.path: ['', '/python/mojemoduly', '/etc/profile.d', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7'] zapíše správně moji cestu (sice i cestu '/etc/profile.d'), ale problém mám jinde. Spuštěním programu v crontab ten pak havaruje na tom, že nemůže naimportovat moje moduly. Pokusy s doplněním cesty přímo v crontab nebo nepřímo v cron.d nevedly k ničemu. Co s tím opravdu nevím. Díky za nové podněty. V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] PYTHONPATH
Zdravím všechny vývojáře. Moje ne zrovna dobrá znalost proměnných v Linuxu mi činí tuto potíž: Dosud jsem si ukládal své vlastní moduly do stejného adresáře, kde mám uloženy i programy. Jak se množství programů a modulů stává už nepřehlednými, založil jsem si další adresáře. A nastal problém. Použití příkazu: export PYTHONPATH="$PYTHONPATH:/cesta_k_mym_modulum" následná kontrola pomocí sys.path je v pořádku, moduly jsou importovatelné. To ale nefunguje po odpojení a novém připojení k serveru. Zatím jsem nenašel úložiště cest k PYTHONPATH ani metodu, jak proměnnou změnit natrvalo. Děkuji za pomoc. V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] zpracování unixovských emailů
Zdravím všechny znalce Pythonu a Linuxu ! Při zpracování došlých emailů používám konstrukci: def zpracovaniMailboxu(inbox): 'Zpracuje emaily dosle do inbox' import email, mailbox fp = open(inbox, 'rb') mbox = mailbox.UnixMailbox(fp, email.message_from_file) for msg in mbox: for part in msg.walk(): odkoho = msg['from'] isodatum = msg['date'] predmet = msg['subject'] if part.get_content_maintype() == 'multipart': continue if part.get_content_maintype() == 'text': text = part.get_payload(decode=True) #zpracuji text) fp.close() Moje otázky: 1) Jak zajistit, aby se inbox během zpracování neměnil, emaily přicházejí asynchonně kdykoli. Neumím použít funkci lock(), unlock(). 2) Jak případně vymazat email po jeho zpracování ve složce inbox Děkuji za pomoc a praktické rady. V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] email headers
Zdravím všechny znalé pythonu. Může mi někdo poradit s dekódováním hlaviček emailů ? Jde o toto: Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně zdekódovat. Co se týká vlastních zpráv, nemám problém: def ebox(inbox): 'Zpracuje email inbox' fp = open(inbox, 'rb') mbox = mailbox.UnixMailbox(fp, email.message_from_file) for msg in mbox: for part in msg.walk(): if part.get_content_maintype() == 'text': data = part.get_payload(decode=True) # zpracuju data Problém mám jen s hlavičkama. Když použiju například headers = Parser().parse(fp) tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený objekt, ale další už ne: print 'To: %s' % headers['to'] print 'From: %s' % headers['from'] print 'Subject: %s' % headers['subject'] Můj dotaz tedy je: jak skloubit jednoduše obě funkce? Složitě to umím. Děkuji za váš čas. Zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] vytvoření proměnných
Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x => {p1, p2, p3, ...pn} y => {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] vstup z klávesnice pod Windows bez ENTER
Zdravím všechny ! Vstup z klávesnice pod Linuxem bez ENTER je bez problémů. Avšak pod Windows mám problém. Chtěl bych využít například getch(), getche() z knihovny msvcrt. Může někdo poradit elegantní řešení ? Mi se zatím daří dostat jen hodnotu '\xff', ale stlačenou klávesu nikoli. Díky za pomoc ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] stopky
Zdravím, při řešení stopek potřebuji změřit a pak také převést přesný čas do čitelné podoby. Čas zjišťuji pomocí modulu _time_: import time # ~ casStartu = time.time() # ~ casStopu = time.time() # ~ casCelkem = casStopu - casStartu # ~ Dostávám float číslo _casCelkem_. Může mi prosím někdo poradit, jak co nejelegantněji převést _casCelkem_ na něco rozumného ? Například něco podobného, co dělá _strftime_, ale sekundy na setiny: 10.02.2009 05:12:03,56 Díky VL ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] problém s češtinou v příloze
Zdravím všechny, nepodařilo se mi vyřešit následující problém při odesílání přílohy v emailu. Pokud dám text do těla zprávy, je čeština v pořádku. Pokud však uložím text do souboru v kódování latin2, je čitelný a viditelně také v pořádku. Ale po odeslání v příloze emailu se v přijaté zprávě objeví ž,š překódované. Může mi někdo prakticky poradit? Díky VL Použil jsem následující konstrukci: #!/usr/bin/python2.4 # -*- coding: iso-8859-2 -*- import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.Utils import COMMASPACE, formatdate from email import Encoders def send_mail(files,send_from, send_to, subject, text, server): 'Posle email s prilohami' assert type(send_to)==str assert type(files)==list msg = MIMEMultipart() msg['From'] = send_from msg['To'] = send_to msg['Date'] = formatdate(localtime=True) msg['Subject'] = subject msg.attach( MIMEText(text,_charset='iso-8859-2') ) for f in files: part = MIMEBase('application', "octet-stream") part.set_payload(open(f,"rb").read()) Encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f)) msg.attach(part) smtp = smtplib.SMTP(server) smtp.sendmail(send_from, send_to, msg.as_string()) smtp.close() begin:vcard fn;quoted-printable:Vladislav Lud=C3=ADk n;quoted-printable:Lud=C3=ADk;Vladislav org;quoted-printable:Vladislav Lud=C3=ADk adr;quoted-printable;quoted-printable;dom:;;Tylovice 2027;Ro=C5=BEnov pod Radho=C5=A1t=C4=9Bm;Zl=C3=ADnsk=C3=BD;756 61 email;internet:[EMAIL PROTECTED] title;quoted-printable:Vlastn=C3=ADk tel;work:+420 572 151 300 tel;fax:+420 571 652 411 tel;home:+420 572 151 334 tel;cell:+420 608 777 525 x-mozilla-html:FALSE version:2.1 end:vcard ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Poptávka
Zdravím všechny Pythonysty. Hledám člověka, který umí: a) programovat objektově v Pythonu b) má čas a chuť to své umění předat dalším zájemcům c) umí své umění předat dalším zájemcům d) není příliš náročný Co já pro něj můžu udělat je toto: a) zajistím prostory a ubytování v hezkém prostředí b) zajistím potřebnou techniku c) nabídnu výuku případným dalším zájemcům d) zaplatím mu dohodnutou cenu Myslí si někdo, že by se na to dal ? Optimista: Vladislav Ludík Rožnov pod Radhoštěm begin:vcard fn;quoted-printable:Vladislav Lud=C3=ADk n;quoted-printable:Lud=C3=ADk;Vladislav org;quoted-printable:Vladislav Lud=C3=ADk adr;quoted-printable;quoted-printable;dom:;;Tylovice 2027;Ro=C5=BEnov pod Radho=C5=A1t=C4=9Bm;Zl=C3=ADnsk=C3=BD;756 61 email;internet:[EMAIL PROTECTED] title;quoted-printable:Vlastn=C3=ADk tel;work:+420 572 151 300 tel;fax:+420 571 652 411 tel;home:+420 572 151 334 tel;cell:+420 608 777 525 x-mozilla-html:FALSE version:2.1 end:vcard ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python