Не удалось выполнить функцию приложения Azure (Python) после публикации в Azure. «Нет модуля с именем <n>». Работает локально - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть функция python, которую я создал как функцию приложения Azure. Он отлично работает на моей локальной машине, но не дает описательной ошибки при выполнении после успешной публикации.

Первоначально произошел сбой с 500 внутренними ошибками сервера из-за:

Result: Failure
Exception: ModuleNotFoundError: No module named 'pandas'
Stack:   File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/azure/functions_worker/dispatcher.py", line 218, in _handle__function_load_request
    func_request.metadata.entry_point)
  File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/azure/functions_worker/loader.py", line 66, in load_function
    mod = importlib.import_module(fullmodname)
  File "/root/.pyenv/versions/3.6.8/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/site/wwwroot/generateGraph/__init__.py", line 2, in <module>
    import pandas as pd

Я думал, что это я не публиковал с ключом --build-native-deps. Поэтому я переиздал с помощью этого переключателя: (.env) C: \ Temp \ python_function> func azure functionapp publish httpGenGraph --build-native-deps

И публикация прошла успешно. Теперь, когда я запускаю Http Trigger, я снова получаю ту же ошибку. Я что-то упускаю? Я новичок в Python, поэтому он может не понимать требования к упаковке или что-то в этом роде. Функция работает в моей локальной виртуальной среде Python.

1 Ответ

1 голос
/ 11 апреля 2019

Разобрался.Мне нужно было направить вывод pip freeze в файл require.txt.Это позволило правильно ссылаться на пакеты при публикации.

Для справки:

(.env) C:\Temp\python_function>pip freeze > requirements.txt

Тогда:

(.env) C:\Temp\python_function>func azure functionapp publish httpGenGraph --build-native-deps
...