Установить Python модулей в Azure Функции - PullRequest
0 голосов
/ 04 марта 2020

Я учусь использовать функции Azure и использую в нем мой скрипт веб-скребка.

Используются модули BeautifulSoup (bs4) и py mysql.

Работает нормально, когда я пробовал локально в виртуальной среде, в соответствии с этим руководством по MS:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli?pivots=programming-language-python&tabs=cmd%2Cbrowser#run -the-функция-локально

Но когда я создаю функцию App и публикую sh скрипт к ней, Azure Журналы функций выдают мне эту ошибку:

Failure Exception: ModuleNotFoundError: No module named 'pymysql'.

Это должно произойти при попытке его импорта.

Я действительно не знаю, как поступить, где мне указать, какие модули нужно установить?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Вы должны проверить, сгенерировали ли вы requirements.txt, который включает в себя всю информацию о модулях. При развертывании функции в azure она автоматически установит модули с помощью requirements.txt.

Вы можете сгенерировать информацию о модулях в файле requirements.txt с помощью приведенной ниже команды в локальной системе:

pip freeze > requirements.txt

И затем разверните функцию в azure, выполнив команду publi sh:

func azure functionapp publish hurypyfunapp --build remote

Для получения дополнительной информации о развертывании функции python от локального до auzre, пожалуйста, обратитесь к это учебное пособие .

Кстати, если вы используете план потребления для своей функции python, «Куду» для нас недоступен. Если вы хотите использовать «Kudu», вам нужно создать для него план обслуживания приложения, но не план потребления.

Надеюсь, это поможет ~

0 голосов
/ 04 марта 2020

Вам необходимо загрузить установленные модули при развертывании на azure. Вы можете загрузить их, используя Kudu:

https://github.com/projectkudu/kudu/wiki/Kudu-console

в качестве альтернативы, вы также можете использовать Kudu и запустить pip install с помощью консоли:

enter image description here

...