There are two ways to specify dependencies for Cloud Functions written in
Python: using the pip package manager's
requirements.txt file or packaging local dependencies alongside your function.
Specifying dependencies with pip
Dependencies in Python are managed with pip and expressed in a metadata
This file must be in the same directory as the
main.py file that contains
your function code.
When you deploy your function, Cloud Functions downloads and installs
dependencies declared in the
requirements.txt file using pip.
requirements.txt file contains one line per package. Each line contains
the package name, and optionally, the requested version. For more details, see
The following is an example
Packaging local dependencies
If your dependency is not available via the pip package manager, you can package and deploy your dependency alongside your function. For example, you might use a directory structure such as the following:
myfunction/ ├── main.py └── mylocalpackage/ ├── __init__.py └── myscript.py
You can then use code from the local dependency,
from mylocalpackage.myscript import foo
Using private dependencies
Dependencies are installed in a Cloud Build environment that does not provide access to SSH keys. Packages hosted in repositories that require SSH-based authentication must be vendored and uploaded alongside your project's code, as described in the previous section.
You can use the
pip install command with the
-t DIRECTORY flag to copy private dependencies into
a local directory before deploying your app, as follows:
Copy your dependency into a local directory:
pip install -t DIRECTORY DEPENDENCY
Add an empty
__init__.pyfile to the
DIRECTORYdirectory to turn it into a module.
Import from this module to use your dependency:
The following Python packages are automatically installed alongside your
function during deployment. If you are using any of these packages in your
function code, we recommend that you include the following versions in your
click==6.7 Flask==1.0.2 itsdangerous==0.24 Jinja2==2.10 MarkupSafe==1.0 pip==18.0 requests==2.21.0 setuptools==40.2.0 Werkzeug==0.14.1 wheel==0.31.1
In addition, the Python runtime includes a number of system packages in the execution environment. If your function uses a dependency that requires a system package that is not listed, you can request a package.