Я пытаюсь записать функции в файл, чтобы я мог использовать этот файл / функцию в другом месте. Я выбираю dill
, а не pickle
, потому что мне нужны зависимости. Однако dill
не работает, если функция имеет импорт внутри. Например:
def func():
import numpy
import dill
dill.settings['recurse'] = True
with open("test.pickle","wb") as f:
dill.dump(func,f)
Когда я перезагружаюсь и загружаю функцию обратно, я получаю эту ошибку,
import dill
func = dill.load(open("test.pickle"))
func()
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input> in <module>()
1 import dill
2 func = dill.load(open("test.pickle"))
----> 3 func()
<ipython-input> in func()
ImportError: __import__ not found
Этот пример работает, если я использую pickle
для дампа, но * 1011 Кажется, * не рекурсивно сохраняет зависимости, поэтому я не могу сохранить такие функции, как def fun1(): return fun2()
. Есть ли способ вывести функции как с импортом, так и с зависимостями? Я чувствую, что pickle
или dill
делает только половину.