2010-12-08 54 views
1

Je suis en cours d'exécution dans ce problème:incompatibilité de type argument Boost.Python (numpy.int64 -> int)

Boost.Python.ArgumentError: Python argument types in 
    Dirichlet.Observe(int, numpy.int64, float) 
did not match C++ signature: 
    Observe(unsigned int, unsigned int, double) 

Semble assez proche? Après un remplacement, il semble que l'argument du milieu est le problème. Comment convertir numpy.int64 en int?

+0

Un int64 est loin d'être un entier non signé. C'est un peu comme essayer d'emballer un int dans un octet. –

+0

@anon, sûrement, il pourrait le tronquer. –

Répondre

3

Vous pouvez vous essayer ...

int(numpyint) 
+0

Ha, je devais juste faire 'int (...)'. Je suis encore nouveau sur python. –

+0

Doux, j'ai édité ma réponse pour refléter cela, merci! – Pace

+0

FYI - http://docs.python.org/library/functions.html#int – spenthil