Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Vašek 19. 10. 2015, 16:09:08

Název: Převod funkce z Pythonu do C
Přispěvatel: Vašek 19. 10. 2015, 16:09:08
Ahoj,

mám funkci v pythonu s takovouhle hlavičkou:

def CSAI(seed, SK1, SK2, SK3, wait)

seed je typu list.

Potřeboval bych udělat funkci v c/c++, která by měla podobnou hlavičku a brala pythonovský list jako argument.

Díky

Vašek
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: Logik 19. 10. 2015, 16:36:29
A proč? K čemu to má sloužit?
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: Vašek 19. 10. 2015, 16:38:35
Potřebuju tu funkci převést z pythonu do dll.

Vašek
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: hu 19. 10. 2015, 17:58:26
Potřebuju tu funkci převést z pythonu do dll.

Vašek

To je zajímavá formulace. KaždopádnĚ http://cython.org/
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: Jenda 19. 10. 2015, 18:21:36
> a brala pythonovský list jako argument

To je fakt divný požadavek. Zkus swig, je tam na to funkce, ale přijde mi, že to je nesmysl dělat takhle. Spíš bych to ještě v Pythonu zkusil třeba přes struct převést na něco C-like.
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: Ivan Nový 19. 10. 2015, 18:48:54
A co toto? https://github.com/pradyunsg/Py2C
Název: Re:Poradíte někdo s převodem funkce z pythonu do c?
Přispěvatel: it expert 19. 10. 2015, 19:14:13
Kód: [Vybrat]
namespace py = boost::python;

void CSAI( py::list seed, py::object SK1, py::object SK2, py::object SK3, py::object wait)
{

}
Název: Re:Převod funkce z Pythonu do C
Přispěvatel: Vašek 20. 10. 2015, 11:27:03
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek
Název: Re:Převod funkce z Pythonu do C
Přispěvatel: Jann 20. 10. 2015, 11:40:54
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek

No, je podzim, takže on tam ten list co nevidět spadne sám.
Název: Re:Převod funkce z Pythonu do C
Přispěvatel: ByCzech 20. 10. 2015, 12:00:54
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek

No, je podzim, takže on tam ten list co nevidět spadne sám.

Jsem si vždycky myslel, že na programování musí být talent, ale dneska do toho zdá se chce fušovat kde kdo... :)
Název: Re:Převod funkce z Pythonu do C
Přispěvatel: Logik 20. 10. 2015, 12:54:56
A jak chceš tý DLL předávat jako argument pythoní list?

Jinak cython by mohl být řešením, ale mám podezření, že něco řešíš špatně. K čemu bude sloužit ta DLL a proč
do ní potřebuješ dávat pythoní funkci? Kdo ji bude volat a odkud?

- Potřebuješ volat python z jiného jazyka? Pak nepotřebuješ přijímat pythoní list.
- Potřebuješ volat jiný jazyk z pythonu? Pak je řešení více, např. F2PY nebo Cython (doporučuji ten).
Ovšem tady nejprve musíš vůbec vyřešit, jak a čím budeš tu nepythoní funkci volat z pythonu a ne
nejprve řešit formát argumentů.... A spíše doporučuji volat jednodušší jednoúčelové funkce, než
něco složitého zpracovávající složité datové struktury.
- Potřebuješ volat python z pythonu? Pak je dll zbytečná....
- (možnost volat jiný jazyk z jiného jazyka radši nezmiňuji)...