Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cythonize射线演员类_Python_Python 3.x_Cython_Ray_Cythonize - Fatal编程技术网

Python Cythonize射线演员类

Python Cythonize射线演员类,python,python-3.x,cython,ray,cythonize,Python,Python 3.x,Cython,Ray,Cythonize,我正在使用Ray库,然后我想对我的包进行Cythonize。 而如何适应常规的遥控功能呢 some_cython_func = ray.remote(some_cython_module.some_cython_func) 尚不清楚如何处理Ray Actor(类级别的装饰器) 经过Cythonization后,该代码会产生这样的错误 File "/Users/user/anaconda3/envs/ray-test/lib/python3.7/site-packages/ray/

我正在使用Ray库,然后我想对我的包进行Cythonize。 而如何适应常规的遥控功能呢

some_cython_func = ray.remote(some_cython_module.some_cython_func)
尚不清楚如何处理Ray Actor(类级别的装饰器)

经过Cythonization后,该代码会产生这样的错误

  File "/Users/user/anaconda3/envs/ray-test/lib/python3.7/site-packages/ray/actor.py", line 538, in _remote
    meta.method_meta.methods.keys())
  File "/Users/user/anaconda3/envs/ray-test/lib/python3.7/site-packages/ray/function_manager.py", line 358, in export_actor_class
    "class": pickle.dumps(Class),
  File "/Users/user/anaconda3/envs/ray-test/lib/python3.7/site-packages/ray/cloudpickle/cloudpickle_fast.py", line 70, in dumps
    cp.dump(obj)
  File "/Users/user/anaconda3/envs/ray-test/lib/python3.7/site-packages/ray/cloudpickle/cloudpickle_fast.py", line 656, in dump
    return Pickler.dump(self, obj)
_pickle.PicklingError: Can't pickle <cyfunction MyService.__init__ at 0x7fc230367c80>: it's not the same object as app.my_service.__init__
文件“/Users/user/anaconda3/envs/ray test/lib/python3.7/site packages/ray/actor.py”,第538行,在远程
meta.method\u meta.methods.keys())
导出类中的文件“/Users/user/anaconda3/envs/ray test/lib/python3.7/site packages/ray/function\u manager.py”,第358行
“类别”:腌菜垃圾(类别),
文件“/Users/user/anaconda3/envs/ray test/lib/python3.7/site packages/ray/cloudpickle/cloudpickle_fast.py”,第70行,转储
cp.dump(obj)
文件“/Users/user/anaconda3/envs/ray test/lib/python3.7/site packages/ray/cloudpickle/cloudpickle_fast.py”,第656行,位于转储文件中
返回Pickler.dump(自、obj)
_pickle.PicklingError:无法pickle:它与app.my_服务不同。\uu init__
如何重写/调整现有的工作光线代码以与Cython一起工作


python3.7.9
/
ray==0.8.6
是的,看起来像是一个简单的解决方案

MyService = ray.remote(_MyService)
工作没有问题


您是否尝试过
MyService=ray.remote(一些cython\u module.MyService)
(在常规Python模块中)?这似乎与他们关于函数的建议有明显的相似之处?@DavidW谢谢,我错过了一些非常明显的东西,可以先尝试一下
MyService = ray.remote(_MyService)