首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sympy模块中python代码中的PicklingError

Sympy模块中python代码中的PicklingError
EN

Stack Overflow用户
提问于 2017-07-09 15:25:34
回答 1查看 131关注 0票数 0

我写了下面的代码,但我得到了一个酸洗错误。我不知道是什么错了。

代码语言:javascript
复制
    x = Symbol('x')
    y = Symbol('y')

    f = Function('f')(x)
    h = Function('h')(x)

    g = Function('g')(y)
    t = Function('t')(y)
    X1 = f + g
    X2 = h * t
    E = 1 + (f.diff(x)) ** 2 + (f.diff(x) * g) ** 2
    F = f.diff(x) * g.diff(y) + f.diff(x) * g.diff(y) * f * g
    G = 1 + (g.diff(y)) ** 2 + (f * g.diff(y)) ** 2

   MainD = 2 * (E * G - F ** 2)
   with open('M.pickle', 'wb') as outf:
   outf.write(pickle.dumps(MainD))

我收到以下错误消息:

代码语言:javascript
复制
   Can not pickle f: it is not the same object as _main_ .f
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 23:25:09

没有一个pickle甚至是dill能够与Sympy完全兼容。但是,您可以将输出转换为字符串,然后从txt文件中写入/读取。以下是基于您的代码的示例。

代码语言:javascript
复制
Str_MainD = str(MainD)
with open('M.py', 'w') as file:
    file.write(Str_MainD)

现在,由

代码语言:javascript
复制
with open('M.py', 'r') as file:
    Read_From_File = file.read()

您可以在另一个脚本中读取它(如果第二个脚本由一些Simpy代码操纵,请改用eval(file.read()))。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44994050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档