Syft(PySyft):ModuleNotFoundError 'syft_proto.messaging.v1.protocol_pb2'

Syft (PySyft) : ModuleNotFoundError 'syft_proto.messaging.v1.protocol_pb2'

我 运行 这个简单的代码在 google colab 上。

###cell 1 : `!pip install syft` 
###cell 2 : `import syft as sy` 

我收到了这个错误:

ModuleNotFoundError: No module named 'syft_proto.messaging.v1.protocol_pb2'

有完整的错误信息

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-3-9aeadc8ee442> in <module>()
----> 1 import syft as sy

7 frames
/usr/local/lib/python3.6/dist-packages/syft/__init__.py in <module>()
     41 
     42 # Import grids
---> 43 from syft.grid.private_grid import PrivateGridNetwork
     44 from syft.grid.public_grid import PublicGridNetwork
     45 

/usr/local/lib/python3.6/dist-packages/syft/grid/private_grid.py in <module>()
      9 # Syft imports
     10 from syft.grid.abstract_grid import AbstractGrid
---> 11 from syft.workers.node_client import NodeClient
     12 from syft.messaging.plan.plan import Plan
     13 from syft.frameworks.torch.tensors.interpreters.additive_shared import AdditiveSharingTensor

/usr/local/lib/python3.6/dist-packages/syft/workers/node_client.py in <module>()
      5 
      6 # Syft imports
----> 7 from syft.serde import serialize
      8 from syft.messaging.plan import Plan
      9 from syft.codes import REQUEST_MSG, RESPONSE_MSG

/usr/local/lib/python3.6/dist-packages/syft/serde/__init__.py in <module>()
----> 1 from syft.serde.serde import *

/usr/local/lib/python3.6/dist-packages/syft/serde/serde.py in <module>()
     10 from syft.workers.abstract import AbstractWorker
     11 
---> 12 from syft.serde import msgpack
     13 
     14 ## SECTION:  High Level Public Functions (these are the ones you use)

/usr/local/lib/python3.6/dist-packages/syft/serde/msgpack/__init__.py in <module>()
----> 1 from syft.serde.msgpack import serde
      2 from syft.serde.msgpack import native_serde
      3 from syft.serde.msgpack import torch_serde
      4 from syft.serde.msgpack import proto
      5 

/usr/local/lib/python3.6/dist-packages/syft/serde/msgpack/serde.py in <module>()
     57 from syft.messaging.plan import Plan
     58 from syft.messaging.plan.state import State
---> 59 from syft.messaging.protocol import Protocol
     60 from syft.messaging.message import Message
     61 from syft.messaging.message import Operation

/usr/local/lib/python3.6/dist-packages/syft/messaging/protocol.py in <module>()
     11 from syft.workers.abstract import AbstractWorker
     12 from syft.workers.base import BaseWorker
---> 13 from syft_proto.messaging.v1.protocol_pb2 import Protocol as ProtocolPB
     14 
     15 

ModuleNotFoundError: No module named 'syft_proto.messaging.v1.protocol_pb2'

希望你能帮助我。谢谢

您尝试使用的模块似乎已被弃用或有新版本。请参阅 here 文件未激活。

尝试搜索是否存在此协议的更新版本或可以满足您需要的任何类似协议。

编辑:

也可能是您使用的是旧版本 Syft,因此我建议您升级 pipSyft。按照说明进行操作 here

感谢您的解答。当我降级这两个包时它可以工作,这是由于 pysyft 开发人员的临时问题。

!pip install syft=="0.2.2a1"
!pip install syft_proto=="0.1.1a1.post17"

您可以将两者升级到保持兼容的最新版本!

!pip install --upgrade syft
!pip install --upgrade syft_proto