Мне нужна функция Azure Python для обслуживания маринованного объекта, и мне нужно, чтобы результирующий файл PKL был разумно переносимым, так что он Может использоваться в любом типичном ноутбуке или файле кода Python с минимальным импортом.
Код: Выделить всё
import dill
def test():
print("It worked!")
result = dill.dumps(test)
Код, используемый для загрузки файла pkl в другой проект:
Код: Выделить всё
import dill
file = open('test.pkl', 'rb')
test = dill.load(file)
file.close()
test()
Во всех моих тестовых случаях приведенный выше код работает, но при запуске кода для генерации файл pkl из проекта, который будет развернут в Azure, полученный файл pkl невозможно загрузить в другой проект, например в блокнот Jupyter.
Когда я пытаюсь загрузить файл pkl, терминал результаты:
ModuleNotFoundError: нет модуля с именем «__app__»
Изменить: после некоторого копания выяснилось, что модуль __app__ является модулем верхнего уровня по умолчанию для функций Azure. Более того, dill включает в выходные данные абсолютные пути при попытке сериализации функций и лямбда-выражений, что кажется неправильным. Кто-нибудь знает обходной путь? Я не очень хорошо знаком с этой территорией, и любые подсказки, которые кто-либо может предложить здесь, будут очень признательны.
Подробнее здесь: https://stackoverflow.com/questions/705 ... nvironment
Мобильная версия