pickle相关内容

芹菜即使允许腌制也不接受腌制

我正在尝试编写一个芹菜应用程序,它将Numpy数组(或任何任意对象)传递给Worker。据我所知,这需要通过pickle进行序列化(注意:我知道安全问题,但在本例中这不是问题)。 但是,即使在尝试了所有我能找到的允许Pickle作为序列化程序的方法之后,我仍然得到以下Kombu异常: kombu.exceptions.ContentDisallowed: Refusing to des ..
发布时间:2022-02-27 13:22:32 Python

用 python 3 解开一个 python 2 对象

我想知道是否有办法使用 Python 3.4 加载在 Python 2.4 中腌制的对象. 我一直在对大量公司遗留代码运行 2to3 以使其保持最新状态. 完成此操作后,在运行文件时出现以下错误: 文件“H:\fixers - 3.4\addressfixer - 3.4\trunk\lib\address\address_generic.py",第 382 行,在 read_re ..
发布时间:2022-01-31 19:34:16 Python

使用 pickle.dump - TypeError: must be str, not bytes

我使用的是 python3.3,在尝试腌制一个简单的字典时遇到了一个神秘的错误. 代码如下: 导入操作系统进口泡菜从泡菜进口 *os.chdir('c:/Python26/progfiles/')def storvars(vdict):f = open('varstor.txt','w')pickle.dump(vdict,f,)f.close()返回mydict = {'name':'j ..
发布时间:2022-01-31 19:32:05 Python

在泡菜文件中保存和加载多个对象?

我有一个类为游戏中的玩家服务,创建他们和其他东西. 我需要将这些播放器对象保存在一个文件中以供以后使用.我已经尝试过 pickle 模块,但我不知道如何保存多个对象并再次加载它们?有没有办法做到这一点,或者我应该使用其他类(如列表)并将我的对象保存和加载到列表中? 有没有更好的办法? 解决方案 使用列表、元组或字典是迄今为止最常见的方法: 进口泡菜PIK = "pickle. ..
发布时间:2022-01-31 19:16:03 Python

为什么泡菜比 np.save 花费这么多时间?

我想保存 dict 或数组. 我尝试使用 np.save 和 pickle 并发现前者总是花费更少的时间. 我的实际数据要大得多,但我只是在这里展示一小块用于演示目的: 将 numpy 导入为 np#import numpy.array 作为数组进口时间进口泡菜b = {0: [np.array([0, 0, 0, 0])], 1: [np.array([1, 0, 0, 0]), ..
发布时间:2022-01-24 18:28:11 Python

Python - 如何使这个不可腌制的对象可腌制?

所以,我有一个对象,里面有很多不可腌制的东西(pygame 事件、orderedDicts、时钟等),我需要将它保存到磁盘. 问题是,如果我可以让这个东西存储一个有进度的字符串(我只需要一个整数),那么我可以将它传递给对象的 init,它会重建所有这些东西.不幸的是,我使用的框架 (Renpy) 会腌制对象并尝试加载它,尽管我可以将其保存为单个整数,但我无法更改.p> 所以,我要问的是,我 ..
发布时间:2022-01-24 18:26:17 Python

Python,如何处理“ValueError:不支持的pickle协议:4";错误?

我是 Python 新手.我必须运行这个 TargetFinder 脚本(“自定义分析"). 我安装了所有必需的 python 包,并将代码复制到我命名为 main.py 的脚本中,然后运行它.我收到了这个错误: [davide@laptop]$ python main.py回溯(最近一次通话最后):文件“main.py",第 8 行,在 training_df = pd. ..
发布时间:2022-01-13 21:52:10 Python

酸洗错误:不能酸洗<type 'function'>

我想知道这个错误可能意味着什么: PicklingError: Can't pickle : 属性查找 __builtin__.function 失败 我知道这与使用多核有关.我在集群上运行我的程序,并在我的这行代码中使用了 15 个线程: gauss2 = PTSampler(ntemps, renwalkers, rendim, lnlike, lnpr ..
发布时间:2022-01-12 13:12:48 Python

如何腌制 ssl.SSLContext 对象

Windows 上的 Python 3.5,试试这些: 导入 ssl、pickle、多处理上下文 = ssl.create_default_context()foo = pickle.dumps(上下文)pickle.loads(foo) 抛出异常: TypeError: __new__() 缺少 1 个必需的位置参数:'protocol' multiprocessing.Process ..
发布时间:2022-01-12 12:59:19 Python

Windows 上的多处理中断

我在 Linux 上使用 Python 进行开发,但从未真正见过 Windows 出现此类问题.我正在使用 multiprocessing 库来加速计算,这对我在 Linux 上非常有效. 然而,在 Windows 上,事情并不顺利: * [INFO] 使用 2 个线程解析 1 个文件回溯(最近一次通话最后):文件“main.py",第 170 行,在 master = ..
发布时间:2022-01-12 12:39:39 Python

不能腌制静态方法 - 多处理 - Python

我正在对我使用类的代码应用一些并行化.我知道如果没有与 Python 提供的任何其他方法不同,就不可能选择一个类方法.我在这里找到了解决方案.在我的代码中,我必须使用类进行并行化的部分.在这里,我发布了一个非常简单的代码,仅代表我的结构(相同,但我删除了方法内容,这是很多数学演算,对我得到的输出来说微不足道).问题是因为我可以腌制一种方法(shepard_interpolation),但使用另一种 ..
发布时间:2022-01-12 12:37:05 Python

multiprocessing.Pool - PicklingError: Can't pickle <type 'thread.lock'>: 属性查找 thread.lock 失败

multiprocessing.Pool 快把我逼疯了... 我想升级许多软件包,并且对于每个软件包,我都必须检查是否有更高版本.这是由 check_one 函数完成的. 主要代码在 Updater.update 方法中:在那里我创建了 Pool 对象并调用 map() 方法. 代码如下: def check_one(args):res, 总计, 包, 版本 = argsi = res ..
发布时间:2022-01-12 12:12:05 Python

多处理和莳萝可以一起做什么?

我想在 Python 中使用 multiprocessing 库.遗憾的是,multiprocessing 使用了 pickle,它不支持带有闭包的函数、lambdas 或 __main__ 中的函数.这三个对我来说都很重要 在[1]中:进口泡菜在 [2] 中:pickle.dumps(lambda x: x)PicklingError: 无法腌制 在 0x2 ..
发布时间:2022-01-12 12:09:42 Python

多处理:如何在类中定义的函数上使用 Pool.map?

当我运行类似的东西时: 来自多处理导入池p = 池(5)定义 f(x):返回 x*xp.map(f, [1,2,3]) 它工作正常.然而,把它作为一个类的函数: 类计算(对象):定义运行(自我):定义 f(x):返回 x*xp = 池()返回 p.map(f, [1,2,3])cl = 计算()打印 cl.run() 给我以下错误: 线程 Thread-1 中的异常:回溯(最近一次通话最 ..
发布时间:2022-01-12 12:07:44 Python

Python multiprocessing PicklingError: Can't pickle <type 'function'>

很抱歉,我无法用更简单的示例重现该错误,并且我的代码太复杂而无法发布.如果我在 IPython shell 而不是常规的 Python 中运行程序,一切都会顺利进行. 我查阅了有关此问题的一些以前的注释.它们都是由使用池调用类函数中定义的函数引起的.但对我来说不是这样. 线程 Thread-3 中的异常:回溯(最近一次通话最后):文件“/usr/lib64/python2.7/thread ..
发布时间:2022-01-12 12:04:48 Python

无法腌制 <type 'instancemethod'>当使用多处理 Pool.map()

我正在尝试使用 multiprocessing 的 Pool.map() 函数同时划分工作.当我使用以下代码时,它工作正常: 导入多处理定义 f(x):返回 x*x定义去():池 = 多处理.池(进程 = 4)打印 pool.map(f, range(10))如果 __name__== '__main__' :去() 但是,当我在更面向对象的方法中使用它时,它就不起作用了.它给出的错误信息是: ..
发布时间:2022-01-12 12:04:41 Python