Cython lambda1 vs. <lambda>

I found out that on my computer a specific method is presented as <cyfunction <lambda> at 0x06DD02A0> , and on the CentOS server it is represented as <cyfunction lambda1 at 0x1df3050> . I believe this is causing a very obscure downstream error with another package.

Why is it different? What is its meaning? Can I flip one over the other?

Details: I see this when viewing pandas.algos._return_false . On the PC and server there is python 2.7.6, the same version of pandas (0.14.1) and cython 0.20.2. The computer runs Win 7, the CentOS 6.5 server.

+2
source share
1 answer

Pandas submits its Cython files pre-compiled against Cython 0.17.2. The <lambda> variant is newer than the one, so it was probably compiled against a version of the Cython system.

You should probably avoid this. This is not even agreed! For example, errors usually use the lambdaN form even on Cython 0.20.2!

If you need to depend on this, standardize the version: either use Pandas' pre-compiled sources worldwide, or compile them yourself.

To compile Pandas with the Python system, run python setup.py clean to delete the pre-created .c files.

+2
source

Source: https://habr.com/ru/post/974384/


All Articles