Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: 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
-
A proč? K čemu to má sloužit?
-
Potřebuju tu funkci převést z pythonu do dll.
Vašek
-
Potřebuju tu funkci převést z pythonu do dll.
Vašek
To je zajímavá formulace. KaždopádnĚ http://cython.org/
-
> 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.
-
A co toto? https://github.com/pradyunsg/Py2C
-
namespace py = boost::python;
void CSAI( py::list seed, py::object SK1, py::object SK2, py::object SK3, py::object wait)
{
}
-
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.
Vašek
-
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.
-
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... :)
-
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)...