Symphy模块中python代码中的PicklingError

Symphy模块中python代码中的PicklingError,python,pickle,sympy,Python,Pickle,Sympy,我写了下面的代码,但我得到了一个酸洗错误。我不知道是什么错误 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)

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

    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))
我收到以下错误消息:

   Can not pickle f: it is not the same object as _main_ .f

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

Str_MainD = str(MainD)
with open('M.py', 'w') as file:
    file.write(Str_MainD)
现在

with open('M.py', 'r') as file:
    Read_From_File = file.read()

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

请说明您遇到的Pickling错误类型。提供错误跟踪也有助于发现问题。@Mani我添加了错误。