Konzole za izvođenje Python skripti


#1

evo opet mene pocetnika sa glupim pitanjima…

Za Python programiranje koristim Anacodna paket i Spyder razvojnu okolinu (ovo su prave rijeci, zar ne?). Kad pokrenem neku skriptu vidim njen output na konzoli. Sve ok. Problem nastaje kad biram konzolu. Ako izaberem standardnu Python konzolu koja koristi kernel na mom kompu, skripta zapne i ne izvrsi se (koristim Serial module koji prica sa USB portom i konstantno javlja da nema niceg na portu). A kad koristim IPython kozolu, koja se vrti na nekom kernelu na cloudu, skripta se izvrsi - ali, output je bezveze. Naime imam jedan plot koji se updatea za vrijeme izvodjenja skripte. IPython taj graf isplota samo jednom i vise ga nikad ne osvjezi. Zasto se to dogadja? Koja je razlika medju ove dvi konzole.

Najbolji output dobijem kad skriptu pokrenem iz command prompta, ali to mi je bezveze, zelim da Spyder radi i zasto ne radi kad bi trebao radit.

P.S. @metakermit mozda mos napravit kategoriju “Alati” za ovakve teme, ili kategoriju jezik in [lista programskih jezika].


#2

Da, Spyder bi bio IDE (integrirana razvojna okolina :stuck_out_tongue:), a Anaconda Python distribucija – neki installer koji ti instalira noviju verziju Pythona i neke pakete (numpy, scipy, matplotlib, pandas, …) koje je inače na Windowsu uglavnom malo zeznuto instalirati (jer hackeri uglavnom vise na Linuxu ili Macu :slight_smile: ).

IPython, kojeg ti Spyder nudi kao jedan od programa za izvršavanje tvoje skripte, je vjerojatno lokalni IPython shell kojeg imaš instaliranog u sklopu Anaconda distribucije. Ono što te tu možda buni s cloudom je što sam neki dan linkao IPython tj. Jupyter bilježnicu koja jest “u cloudu”, ali ti možeš tu bilježnicu vrtiti i lokalno. IPython sam po sebi je otprilike shell kao kad upišeš Python terminal, ali podržava neke dodatne naredbe, a bilježnica (projekt Jupyter notebook, do sada bio IPython notebook) mu dodaje i tu web aplikaciju za lijepo prikazivanje plotova.

Teško mi je pomoći ti oko konkretnog problema čitanja s USB-a. Par savjeta koje ti mogu dati za debuggiranje je da naučiš koristiti pdb, odnosno ipdb za IPython gdje možeš ići liniju po liniju oko nekog komada koda kojeg ne razumiješ. Također, možeš eliminirati faktor IDE-a, tako da skriptu pokreneš u terminalu (moraš doznati kako točno pozvati Anacondin Python - pozicionirati se u taj direktorij gdje je instaliran pa pozvati taj Python.exe je jedan način, a možda ti je to i defaultni python). Inače, lako možeš provjeriti koji trenutno Python shell koristiš:

$ python
>>> import sys
>>> sys.executable
'/usr/local/bin/python'

P.S. – evo dodajem Python podkategoriju Programiranja obzirom da dosta o njemu već pričam s tobom :slight_smile: