PicklingError: Can't pickle <type 'thread.lock'>: attribute lookup thread.lock failed
时间: 2023-08-22 17:06:35 浏览: 160
-pickle.PicklingError: Can't pickle <function... pycharm2023运行报错
这个错误通常是因为你尝试序列化一个不能被序列化的对象。在这种情况下,它是因为你尝试 pickle 了一个线程锁 (thread lock) 对象,但线程锁对象是不可序列化的。
要解决这个问题,你可以尝试避免 pickling 线程锁对象,或者自定义一个可序列化的线程锁类,例如:
```python
import threading
class SerializableLock(object):
def __init__(self):
self.lock = threading.Lock()
def __getstate__(self):
return {}
def __setstate__(self, state):
self.lock = threading.Lock()
def acquire(self):
self.lock.acquire()
def release(self):
self.lock.release()
```
然后你就可以使用 `SerializableLock` 替代 `threading.Lock` 来避免这个错误了。
阅读全文