0

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

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

我得到了这个错误:

ModuleNotFoundError:没有名为“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'

希望你能帮助我。谢谢

4

3 回答 3

3

谢谢你的回答。当我降级这两个软件包时它可以工作,这是由于 pysyft 开发人员造成的临时问题。

!pip install syft=="0.2.2a1"
!pip install syft_proto=="0.1.1a1.post17"
于 2020-02-27T22:01:50.440 回答
0

看起来您尝试使用的模块要么已弃用,要么有新版本。请参见此处文件未激活。

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

编辑:

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

于 2020-02-26T14:26:46.117 回答
0

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

!pip install --upgrade syft
!pip install --upgrade syft_proto
于 2020-05-26T20:20:15.523 回答