Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako slati komande Pythonu iz moje aplikacije

[es] :: Python :: Kako slati komande Pythonu iz moje aplikacije

[ Pregleda: 2308 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NicholasMetropolis
NicholasMetropolis
Beograd

Član broj: 220441
Poruke: 283
*.adsl.eunet.rs.



+17 Profil

icon Kako slati komande Pythonu iz moje aplikacije31.08.2009. u 17:29 - pre 135 meseci
Problem je sledeći:

Imam moju aplikaciju koja treba da komunicira sa Pythonom. Npr. napisao sam neke module za Python koji trebaju da vrte neku simulaciju. Npr:

Code:

import simulation
simulation.init(...)
simulation.advance(...)
simulation.process(...)
simulation.adjust(...)
simulation.advance(...)
....


Dakle, simulaciju trebam interaktivno da kontrolišem iz moje aplikacije. Znam da mogu da embeddujem python u moju aplikaciju, ali onda moja aplikacija stoji sve dok PyRun_SimpleString() ne vrati rezultat, a to je ono što hoću da izbegnem.

Dakle, treba mi način da podignem python interpreter (ne nužno na istom računaru) i da mu šaljem komande. Da li neko može da mi pomogne oko ovoga?
#define TRUE FALSE /*Happy debugging suckers*/
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije01.09.2009. u 11:57 - pre 135 meseci
U cemu je pisana tvoja aplikacija?

Mozes da koristis tehnike opisane ovde, s tim sto ces koristiti multiprocessing modul kako bi kreirao zasebni intepreter koji bi "vozio" tvoju simulaciju, a iz tvoje aplikacije komunicirao sa tim intepreterom putem multiprocessing.Pipes objekata.

To bi, ovako na prvu loptu, bilo nesto sto bih ti predlozio da probas.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

NicholasMetropolis
NicholasMetropolis
Beograd

Član broj: 220441
Poruke: 283
*.adsl.eunet.rs.



+17 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije01.09.2009. u 14:44 - pre 135 meseci
Citat:
alex: U cemu je pisana tvoja aplikacija?


C++

Trebaće mi neko vreme da pogledam ovo, pošto nisam baš wizz za Python, a i multiprocesing u Pythonu mi je nova tema. Ako budem zaglavio negde vikaću.
#define TRUE FALSE /*Happy debugging suckers*/
 
Odgovor na temu

NicholasMetropolis
NicholasMetropolis
Beograd

Član broj: 220441
Poruke: 283
*.adsl.eunet.rs.



+17 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije01.09.2009. u 19:53 - pre 135 meseci
Well, sada je i ozvaničeno: Ja sam idiot.

Kompletno sam smetnuo sa uma najočiglednije rešenje: Python ima sockets i SSL module koji su idealni za ono što mi treba.
#define TRUE FALSE /*Happy debugging suckers*/
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije02.09.2009. u 11:46 - pre 135 meseci
To bi znacilo da bi morao da implementiras server (daemon) u Python-u kojeg bi pozivao iz svoje aplikacije. Ukoliko ne implementiras asihrone pozive, opet ces imati isti problem u svojoj aplikaciji sa cekanjem na odgovor.

To je nesto na sta ces morati da obratis paznju. Javi sta si uradio i ako treba pomoc..
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

NicholasMetropolis
NicholasMetropolis
Beograd

Član broj: 220441
Poruke: 283
*.adsl.eunet.rs.



+17 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije05.09.2009. u 15:34 - pre 135 meseci
Ajde da ne otvaram novi topic. Alex imam Python/C++ pitanje. Problem je sledeći

U C++u sam deklarisao osnovnu i izvedenu klasu:

Code:

struct Parent {
    virtual std::string species() {return std::string("I'm human");}
    virtual std::string greet() {return std::string("I'm parent");}
};

struct Child : Parent {
    std::string greet() {return std::string("I'm child");}
};


i funkciju koja poziva greet metod

Code:

std::string do_greet(Parent* par) {
    return par->greet();
}


Sve ovo sam iskompajlirao u modul za Python pomoću Boost.Python biblioteke. Ovo ispod je sada Pyhton kod. Kada u Pythonu pozovem

Code:

do_greet(parent), do_greet(child)


Dobijem odgovarajuće rezultate. Funkcija pozive odgovarajuće metode osnovne i izvedene klase

Code:

'I'm parent', 'I'm child'


Ako sada u Pythonu izvedem nasleđivanje:

Code:

class GrandParent(Parent) :
     def greet(self) :
          return 'I\'m grandparent'


i poteram

Code:

do_greet(grandparent)


dobijem pogrešan rezultat

Code:

'I'm parent'


greet metod nije izveden kako treba. Šta sam pogrešio?
#define TRUE FALSE /*Happy debugging suckers*/
 
Odgovor na temu

NicholasMetropolis
NicholasMetropolis
Beograd

Član broj: 220441
Poruke: 283
*.adsl.eunet.rs.



+17 Profil

icon Re: Kako slati komande Pythonu iz moje aplikacije07.09.2009. u 09:03 - pre 135 meseci
OK je. Trebalo je malo dublje kopati po dokumentaciji, ali našao sam kako se radi sa virtuelnim funkcijama.
#define TRUE FALSE /*Happy debugging suckers*/
 
Odgovor na temu

[es] :: Python :: Kako slati komande Pythonu iz moje aplikacije

[ Pregleda: 2308 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.