20

How can I import modules for a Python Azure Function?

import requests

Leads to:

2016-08-16T01:02:02.317 Exception while executing function: Functions.detect_measure. Microsoft.Azure.WebJobs.Script: Traceback (most recent call last):
  File "D:\home\site\wwwroot\detect_measure\run.py", line 1, in <module>
    import requests
ImportError: No module named requests

Related, where are the modules available documented?

Related question with fully documented answer Python libraries on Web Job

5
  • Did you install requests, and then include them with your Azure Functions code? Commented Aug 16, 2016 at 1:18
  • I'm trying to work directly from the portal.azure.com site, so entering the code directly into the function interface for run.py Commented Aug 16, 2016 at 1:22
  • Looks like there's not a way to do it directly from the Azure portal, but following the instructions here: nicholasjackson.github.io/azure/python/… I was able to create a site-packages folder with all the requisite files. Commented Aug 16, 2016 at 1:55
  • @RyanGalgon The link you gave is not working anymore. Would you have the steps to install requests module? Commented Jan 10, 2017 at 5:24
  • @RyanGalgon - Do you have the updated URL? It's vital we have it please. Commented Nov 4, 2019 at 19:04

3 Answers 3

19

You need to include a requirements.txt file with your code which lists all the python dependencies of your function

From the docs: https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-python#python-version-and-package-management

For example, your reqirements.txt file would contain:

requests==2.19.1
Sign up to request clarification or add additional context in comments.

3 Comments

Hi, do you know how to upload this file to Azure Function ?
@VincentG : from the Azure Portal go to your Function App -> App Files -> requirements.txt, and you can edit there directly
...also run 'pip3 install -r requirements.txt' in the terminal within the directory for the azure function to install all the stuff that you added to the requirements.txt file
8

Python support is currently experimental for Azure Functions, so documentation isn't very good.

You need to bring your own modules. None are available by default on Azure Functions. You can do this by uploading it via the portal UX or kudu (which is handy for lots of files).

You can leave comments on which packages you'd like, how you'd like to manage you packages here on the tracking issue for "real" Python support - https://github.com/Azure/azure-webjobs-sdk-script/issues/335

2 Comments

Thanks. One suggestion would be to make it more clear on the overview page (azure.microsoft.com/en-us/documentation/articles/…) which languages are not fully supported. It would have saved me some time.
@Chris Anderson-MSFT to get requests working, which files are needed (with a link to get them from), and what is the code required to make requests loaded from within the python script?
3

Install python packages from the python code itself with the following snippet:

def install(package):
    # This function will install a package if it is not present
    from importlib import import_module
    try:
        import_module(package)
    except:
        from sys import executable as se
        from subprocess import check_call
        check_call([se,'-m','pip','-q','install',package])


for package in ['requests','hashlib']:
    install(package)

Desired libraries mentioned the list gets installed when the azure function is triggered for the first time. for the subsequent triggers, you can comment/ remove the installation code.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.