python-fcl
python-fcl copied to clipboard
how to compile python-fcl wheel from source?
@mikedh Hi, I want to compile python-fcl on windows, but failed. I do not know how to compile this wheel successfully? Thanks! and It also failed by using the dockerfile or compiling on linux step as blew:
-
powershell .\build_dependencies\install_windows.ps1
-
cd python-fcl
-
pip wheel ./ --no-deps -w wheelhouse/
get the errro
Processing d:\works\basic_lib\python-fcl
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [105 lines of output]
Error compiling Cython file:
------------------------------------------------------------
...
return list(self.objs)
def collide(self, *args):
if len(args) == 2 and inspect.isroutine(args[1]):
fn = CollisionFunction(args[1], args[0])
self.thisptr.collide(<void*> fn, CollisionCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:529:45: Cannot assign type 'bool (CollisionObjectd *, CollisionObjectd *, void *) except? -1' to 'CollisionCallBack'
Error compiling Cython file:
------------------------------------------------------------
...
if len(args) == 2 and inspect.isroutine(args[1]):
fn = CollisionFunction(args[1], args[0])
self.thisptr.collide(<void*> fn, CollisionCallBack)
elif len(args) == 3 and isinstance(args[0], DynamicAABBTreeCollisionManager):
fn = CollisionFunction(args[2], args[1])
self.thisptr.collide((<DynamicAABBTreeCollisionManager?> args[0]).thisptr, <void*> fn, CollisionCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:532:32: no suitable method found
Error compiling Cython file:
------------------------------------------------------------
...
elif len(args) == 3 and isinstance(args[0], DynamicAABBTreeCollisionManager):
fn = CollisionFunction(args[2], args[1])
self.thisptr.collide((<DynamicAABBTreeCollisionManager?> args[0]).thisptr, <void*> fn, CollisionCallBack)
elif len(args) == 3 and inspect.isroutine(args[2]):
fn = CollisionFunction(args[2], args[1])
self.thisptr.collide((<CollisionObject?> args[0]).thisptr, <void*> fn, CollisionCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:535:32: no suitable method found
Error compiling Cython file:
------------------------------------------------------------
...
raise ValueError
def distance(self, *args):
if len(args) == 2 and inspect.isroutine(args[1]):
fn = DistanceFunction(args[1], args[0])
self.thisptr.distance(<void*> fn, DistanceCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:542:46: Cannot assign type 'bool (CollisionObjectd *, CollisionObjectd *, void *, double &) except? -1' to 'DistanceCallBack'
Error compiling Cython file:
------------------------------------------------------------
...
if len(args) == 2 and inspect.isroutine(args[1]):
fn = DistanceFunction(args[1], args[0])
self.thisptr.distance(<void*> fn, DistanceCallBack)
elif len(args) == 3 and isinstance(args[0], DynamicAABBTreeCollisionManager):
fn = DistanceFunction(args[2], args[1])
self.thisptr.distance((<DynamicAABBTreeCollisionManager?> args[0]).thisptr, <void*> fn, DistanceCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:545:33: no suitable method found
Error compiling Cython file:
------------------------------------------------------------
...
elif len(args) == 3 and isinstance(args[0], DynamicAABBTreeCollisionManager):
fn = DistanceFunction(args[2], args[1])
self.thisptr.distance((<DynamicAABBTreeCollisionManager?> args[0]).thisptr, <void*> fn, DistanceCallBack)
elif len(args) == 3 and inspect.isroutine(args[2]):
fn = DistanceFunction(args[2], args[1])
self.thisptr.distance((<CollisionObject?> args[0]).thisptr, <void*> fn, DistanceCallBack)
^
------------------------------------------------------------
src\fcl\fcl.pyx:548:33: no suitable method found
I'm not 100% sure, but recent relase of cython version 3 seem to be the cause.
Try pip3 install "cython<3.0"
and compile again.
At lease in my environment (aarch64, ubuntu20.04), the compilation fail with cython>=3.0 but successes with cython<3.0