Dependencies¶
Both pip install kedro
and conda install -c conda-forge kedro
install the core Kedro module, which includes the CLI tool, project template, pipeline abstraction, framework, and support for configuration.
When you create a project, you then introduce additional dependencies for the tasks it performs.
Declare project-specific dependencies¶
When you create a new Kedro project, Kedro generates a requirements.txt
file in the root directory of the project. The file contains the core dependencies and those related to the tools you choose to include in the project. Specifying the project’s exact dependencies in a requirements.txt
file makes it easier to run the project in the future, and avoids version conflicts downstream.
Install project-specific dependencies¶
When someone clones your project, they can install the project-specific dependencies by navigating to the root directory of the project and running the following command:
pip install -r requirements.txt
Reproducible environments¶
To ensure that the project dependencies and the transitive dependencies are pinned to specific versions, use pip-tools
to compile requirements.txt
file into a requirements.lock
file.
To install pip-tools
in your virtual environment, run the following command:
pip install pip-tools
To add or remove dependencies to a project, edit the requirements.txt
file, then run the following:
pip-compile <project_root>/requirements.txt --output-file <project_root>/requirements.lock
This will pip compile the requirements listed in the requirements.txt
file into a requirements.lock
that specifies a list of pinned project dependencies(those with a strict version). You can also use this command with additional CLI arguments such as --generate-hashes
to use pip
’s Hash Checking Mode or --upgrade-package
to update specific packages to the latest or specific versions.
Check out the pip-tools
documentation for more information.
Note
The requirements.txt
file contains “source” requirements, while requirements.lock
contains the compiled version of those and requires no manual updates. If you need to update the dependencies, update the requirements.txt
file and re-run the pip-compile
command.