是否可以使用pickle序列化某个对象,并在Python3中的其他独立模块中使用它?

是否可以使用pickle序列化某个对象,并在Python3中的其他独立模块中使用它?,python,sockets,serialization,pickle,Python,Sockets,Serialization,Pickle,我有两个独立的文件: 第一个是client.py,我应该在其中使用Record创建一些对象,然后使用pickle类对其进行序列化,然后使用套接字将其发送到第二个文件,即server.py,服务器应该将这个bytes对象反序列化为原始对象 client.py: from pyrecord import Record import pickle clientSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) clientSock.conn

我有两个独立的文件: 第一个是client.py,我应该在其中使用Record创建一些对象,然后使用pickle类对其进行序列化,然后使用套接字将其发送到第二个文件,即server.py,服务器应该将这个bytes对象反序列化为原始对象

client.py:

from pyrecord import Record
import pickle

clientSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientSock.connect(("localhost",48621))
Message1Obj=Record.create_type('Message1Obj','name','address')
message1Data = Message1Obj("KB","aa")
message1Serlization = pickle.dumps(message1Data)
clientSock.send(message1Serlization)
server.py

sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(("localhost",48621))
sock.listen(5)
con,adr = sock.accept()

message1 = con.recv(8192)
Message1Obj = pickle.loads(message1)
但是我在servers.py上发现了这个错误:

AttributeError:无法从“server.py”获取模块“main”上的属性“Message1Obj”


我从前面的回答中了解到pickle.dump还保存了对象所在的模块,是否可以在其他模块中加载序列化对象?

而不是使用pickle来序列化我使用dill来序列化的对象 我的python对象,并以二进制字符串格式通过服务器发送

message1Data = {'A message or function/class object'}
 import dill
 s_data = dill.dumps(message1Data)
通过某个套接字发送到服务器并在那里反序列化

org_data = dill.loads(s_data)