gpt4 book ai didi

python - 导入错误 : No module named copy_reg pickle

转载 作者:IT老高 更新时间:2023-10-28 20:44:11 25 4
gpt4 key购买 nike

我正在尝试解开存储为 MySQL 数据库中 blob 的对象。我已经手动生成了 pickle 对象并将其存储在数据库中,但是当我尝试取消 pickle 对象时,我得到了以下相当神秘的异常:

ImportError: 没有名为 copy_reg 的模块

关于为什么会发生这种情况的任何想法?

繁殖方法

注意:必须在 Windows PC 上执行步骤 1,在 Linux PC 上执行步骤 3 和 4。

1) 在 Windows PC 上:

file = open("test.txt", "w")
thing = {'a': 1, 'b':2}
cPickle.dump(thing, file)

2) 手动将 text.txt 的内容插入到 Linux 上运行的 MySQL 数据库的 blob 字段中

3) 在 Linux 机器上运行的 Python 中,从 MySQL 获取列的内容

4) 假设您将 blob 列的内容放入一个名为 data 的变量中,试试这个:

cPickle.loads(rawString)

最佳答案

看来这可能是我导出 pickle 对象的方法造成的。

This bug report看来表明我的问题可以通过导出到以二进制模式写入的文件来解决。我现在就试一试,看看这是否能解决我的问题。

更新:这行得通。解决方案是确保将 pickle 对象导出到以二进制模式打开的文件中,即使您使用的是默认协议(protocol) 0(通常称为“文本”)

基于相关原始示例的正确代码:

file = open("test.txt", 'wb')
thing = {'a': 1, 'b':2}
cPickle.dump(thing, file)

关于python - 导入错误 : No module named copy_reg pickle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/556269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com