Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dill.dump_会话不使用getpass_Python_Jupyter_Dump_Dill_Getpass - Fatal编程技术网

Python dill.dump_会话不使用getpass

Python dill.dump_会话不使用getpass,python,jupyter,dump,dill,getpass,Python,Jupyter,Dump,Dill,Getpass,我有一个Jupyter笔记本,我想使用dill.dump_session保存它的状态,但是如果笔记本使用getpass模块,函数会抛出一个错误。有办法解决这个问题吗? 我理解不转储密码的意义,但我仍然希望保存所有其他变量,而不必手动检查所有变量 下面是我的代码的一个玩具示例: 导入dill 从getpass导入getpass dill.dump_session(“../session_dump/sess_test.pkl”) 下面是我得到的错误: TypeError

我有一个Jupyter笔记本,我想使用
dill.dump_session
保存它的状态,但是如果笔记本使用
getpass
模块,函数会抛出一个错误。有办法解决这个问题吗? 我理解不转储密码的意义,但我仍然希望保存所有其他变量,而不必手动检查所有变量

下面是我的代码的一个玩具示例:

导入dill
从getpass导入getpass
dill.dump_session(“../session_dump/sess_test.pkl”)
下面是我得到的错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-8-5758b730705e> in <module>
----> 1 dill.dump_session('../session_dump/sess_test.pkl')

~\Anaconda3\lib\site-packages\dill\_dill.py in dump_session(filename, main, byref)
    391         pickler._recurse = False # disable pickling recursion for globals
    392         pickler._session = True  # is best indicator of when pickling a session
--> 393         pickler.dump(main)
    394     finally:
    395         if f is not filename:  # If newly opened file

~\Anaconda3\lib\pickle.py in dump(self, obj)
    435         if self.proto >= 4:
    436             self.framer.start_framing()
--> 437         self.save(obj)
    438         self.write(STOP)
    439         self.framer.end_framing()

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module(pickler, obj)
   1267                 + ["__builtins__", "__loader__"]]
   1268             pickler.save_reduce(_import_module, (obj.__name__,), obj=obj,
-> 1269                                 state=_main_dict)
   1270             log.info("# M1")
   1271         else:

~\Anaconda3\lib\pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
    660 
    661         if state is not None:
--> 662             save(state)
    663             write(BUILD)
    664 

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module_dict(pickler, obj)
    900             # we only care about session the first pass thru
    901             pickler._session = False
--> 902         StockPickler.save_dict(pickler, obj)
    903         log.info("# D2")
    904     return

~\Anaconda3\lib\pickle.py in save_dict(self, obj)
    854 
    855         self.memoize(obj)
--> 856         self._batch_setitems(obj.items())
    857 
    858     dispatch[dict] = save_dict

~\Anaconda3\lib\pickle.py in _batch_setitems(self, items)
    880                 for k, v in tmp:
    881                     save(k)
--> 882                     save(v)
    883                 write(SETITEMS)
    884             elif n:

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_instancemethod0(pickler, obj)
   1076     log.info("Me: %s" % obj) #XXX: obj.__dict__ handled elsewhere?
   1077     if PY3:
-> 1078         pickler.save_reduce(MethodType, (obj.__func__, obj.__self__), obj=obj)
   1079     else:
   1080         pickler.save_reduce(MethodType, (obj.im_func, obj.im_self,

~\Anaconda3\lib\pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
    636         else:
    637             save(func)
--> 638             save(args)
    639             write(REDUCE)
    640 

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\pickle.py in save_tuple(self, obj)
    769         if n <= 3 and self.proto >= 2:
    770             for element in obj:
--> 771                 save(element)
    772             # Subtle.  Same as in the big comment below.
    773             if id(obj) in memo:

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    547 
    548         # Save the reduce() output and finally memoize the object
--> 549         self.save_reduce(obj=obj, *rv)
    550 
    551     def persistent_id(self, obj):

~\Anaconda3\lib\pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
    660 
    661         if state is not None:
--> 662             save(state)
    663             write(BUILD)
    664 

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module_dict(pickler, obj)
    900             # we only care about session the first pass thru
    901             pickler._session = False
--> 902         StockPickler.save_dict(pickler, obj)
    903         log.info("# D2")
    904     return

~\Anaconda3\lib\pickle.py in save_dict(self, obj)
    854 
    855         self.memoize(obj)
--> 856         self._batch_setitems(obj.items())
    857 
    858     dispatch[dict] = save_dict

~\Anaconda3\lib\pickle.py in _batch_setitems(self, items)
    880                 for k, v in tmp:
    881                     save(k)
--> 882                     save(v)
    883                 write(SETITEMS)
    884             elif n:

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module_dict(pickler, obj)
    900             # we only care about session the first pass thru
    901             pickler._session = False
--> 902         StockPickler.save_dict(pickler, obj)
    903         log.info("# D2")
    904     return

~\Anaconda3\lib\pickle.py in save_dict(self, obj)
    854 
    855         self.memoize(obj)
--> 856         self._batch_setitems(obj.items())
    857 
    858     dispatch[dict] = save_dict

~\Anaconda3\lib\pickle.py in _batch_setitems(self, items)
    880                 for k, v in tmp:
    881                     save(k)
--> 882                     save(v)
    883                 write(SETITEMS)
    884             elif n:

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    547 
    548         # Save the reduce() output and finally memoize the object
--> 549         self.save_reduce(obj=obj, *rv)
    550 
    551     def persistent_id(self, obj):

~\Anaconda3\lib\pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
    660 
    661         if state is not None:
--> 662             save(state)
    663             write(BUILD)
    664 

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module_dict(pickler, obj)
    900             # we only care about session the first pass thru
    901             pickler._session = False
--> 902         StockPickler.save_dict(pickler, obj)
    903         log.info("# D2")
    904     return

~\Anaconda3\lib\pickle.py in save_dict(self, obj)
    854 
    855         self.memoize(obj)
--> 856         self._batch_setitems(obj.items())
    857 
    858     dispatch[dict] = save_dict

~\Anaconda3\lib\pickle.py in _batch_setitems(self, items)
    885                 k, v = tmp[0]
    886                 save(k)
--> 887                 save(v)
    888                 write(SETITEM)
    889             # else tmp is empty, and we're done

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    547 
    548         # Save the reduce() output and finally memoize the object
--> 549         self.save_reduce(obj=obj, *rv)
    550 
    551     def persistent_id(self, obj):

~\Anaconda3\lib\pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
    660 
    661         if state is not None:
--> 662             save(state)
    663             write(BUILD)
    664 

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    502         f = self.dispatch.get(t)
    503         if f is not None:
--> 504             f(self, obj) # Call unbound method with explicit self
    505             return
    506 

~\Anaconda3\lib\site-packages\dill\_dill.py in save_module_dict(pickler, obj)
    900             # we only care about session the first pass thru
    901             pickler._session = False
--> 902         StockPickler.save_dict(pickler, obj)
    903         log.info("# D2")
    904     return

~\Anaconda3\lib\pickle.py in save_dict(self, obj)
    854 
    855         self.memoize(obj)
--> 856         self._batch_setitems(obj.items())
    857 
    858     dispatch[dict] = save_dict

~\Anaconda3\lib\pickle.py in _batch_setitems(self, items)
    880                 for k, v in tmp:
    881                     save(k)
--> 882                     save(v)
    883                 write(SETITEMS)
    884             elif n:

~\Anaconda3\lib\pickle.py in save(self, obj, save_persistent_id)
    522             reduce = getattr(obj, "__reduce_ex__", None)
    523             if reduce is not None:
--> 524                 rv = reduce(self.proto)
    525             else:
    526                 reduce = getattr(obj, "__reduce__", None)

~\Anaconda3\lib\site-packages\zmq\backend\cython\socket.cp37-win_amd64.pyd in zmq.backend.cython.socket.Socket.__reduce_cython__()

TypeError: no default __reduce__ due to non-trivial __cinit__

TypeError回溯(最近一次调用)
在里面
---->1 dill.dump_会话(“../session_dump/sess_test.pkl”)
转储会话中的~\Anaconda3\lib\site packages\dill\\u dill.py(文件名,main,byref)
391 pickler._recurse=False#禁用全局函数的pickle递归
392 pickler._session=True#是酸洗会话时间的最佳指示器
-->393酸洗机卸料场(主)
394最后:
395如果f不是文件名:#如果是新打开的文件
转储中的~\Anaconda3\lib\pickle.py(self,obj)
435如果self.proto>=4:
436 self.framer.start_framing()
-->437自我保存(obj)
438自写(停止)
439自成帧器结束成帧()
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自调度获取(t)
503如果f不是无:
-->504 f(self,obj)#使用显式self调用未绑定方法
505返回
506
保存模块中的~\Anaconda3\lib\site packages\dill\\u dill.py(pickler,obj)
1267+[“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
1268 pickler.save_reduce(_import_module,(obj.u名称,),obj=obj,
->1269状态=_main_dict)
1270日志信息(“M1”)
1271其他:
save\u reduce中的~\Anaconda3\lib\pickle.py(self、func、args、state、listitems、dictitems、obj)
660
661如果状态不是无:
-->662保存(状态)
663写入(生成)
664
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自调度获取(t)
503如果f不是无:
-->504 f(self,obj)#使用显式self调用未绑定方法
505返回
506
保存模块目录中的~\Anaconda3\lib\site packages\dill\\u dill.py(pickler,obj)
900#我们只关心第一次通过的会话
901 pickler.\u session=False
-->902库存pickler.保存目录(pickler,obj)
903日志信息(“D2”)
904返回
保存目录中的~\Anaconda3\lib\pickle.py(self,obj)
854
855自我记忆(obj)
-->856自身批处理设置项(对象项())
857
858调度[dict]=保存dict
~\Anaconda3\lib\pickle.py in\u batch\u setitems(self,items)
880对于tmp中的k、v:
881保存(k)
-->882保存(v)
883写入(设置项)
884 elif n:
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自调度获取(t)
503如果f不是无:
-->504 f(self,obj)#使用显式self调用未绑定方法
505返回
506
~\Anaconda3\lib\site packages\dill\\u dill.py在save\u instancemethod0中(pickler,obj)
1076 log.info(“Me:%s”%obj)#XXX:obj.u dict_uu_u_u_u_u_u_u_u_u)在其他地方处理?
1077如果PY3:
->1078 pickler.save\u reduce(方法类型,(obj.\uu func\uu,obj.\uu self\uu),obj=obj)
1079其他:
1080 pickler.save_reduce(方法类型,(obj.im_func,obj.im_self,
save\u reduce中的~\Anaconda3\lib\pickle.py(self、func、args、state、listitems、dictitems、obj)
636其他:
637保存(func)
-->638保存(args)
639写入(减少)
640
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自调度获取(t)
503如果f不是无:
-->504 f(self,obj)#使用显式self调用未绑定方法
505返回
506
保存元组中的~\Anaconda3\lib\pickle.py(self,obj)
769如果n=2:
770对于obj中的元件:
-->771保存(元素)
772#微妙。与下面的大评论相同。
773如果备忘录中的id(obj):
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
547
548#保存reduce()输出,并最终记忆对象
-->549自存自减(obj=obj,*rv)
550
551 def持久_id(自身,obj):
save\u reduce中的~\Anaconda3\lib\pickle.py(self、func、args、state、listitems、dictitems、obj)
660
661如果状态不是无:
-->662保存(状态)
663写入(生成)
664
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自调度获取(t)
503如果f不是无:
-->504 f(self,obj)#使用显式self调用未绑定方法
505返回
506
保存模块目录中的~\Anaconda3\lib\site packages\dill\\u dill.py(pickler,obj)
900#我们只关心第一次通过的会话
901 pickler.\u session=False
-->902库存pickler.保存目录(pickler,obj)
903日志信息(“D2”)
904返回
保存目录中的~\Anaconda3\lib\pickle.py(self,obj)
854
855自我记忆(obj)
-->856自身批处理设置项(对象项())
857
858调度[dict]=保存dict
~\Anaconda3\lib\pickle.py in\u batch\u setitems(self,items)
880对于tmp中的k、v:
881保存(k)
-->882保存(v)
883写入(设置项)
884 elif n:
保存中的~\Anaconda3\lib\pickle.py(self、obj、save\u persistent\u id)
502 f=自显示