Creating a Flyte project

About Flyte projects

A Flyte project is a directory containing task and workflow code, internal Python source code, configuration files, and other artifacts needed to package up your code so that it can be registered to a Flyte cluster.

Prerequisites

Steps

1. Activate your Python virtual environment

If you are using conda or another Python virtual environment manager, first, activate the virtual environment you will use to manage dependencies for your Flyte project:

conda activate flyte-example

2. Initialize your Flyte project

Next, initialize your Flyte project. The flytekit-python-template GitHub repository contains Flyte project templates with sample code that you can run as is or modify to suit your needs.

In this example, we will initialize the basic-template-imagespec project template.

pyflyte init my_project

Note

If you need to use a Dockerfile for your project, you can initialize the Dockerfile template:

pyflyte init --template basic-template-dockerfile my_project

3. Install additional requirements

After initializing your Flyte project, you will need to install requirements listed in requirements.txt:

cd my_project
pip install -r requirements.txt

4. (Optional) Version your Flyte project with git

We highly recommend putting your Flyte project code under version control. To do so, initialize a git repository in the Flyte project directory:

git init

Note

If you are using a Dockerfile instead of ImageSpec, you will need to initialize a git repository and create at least one commit, since the commit hash is used to tag the image when it is built.

5. Run your workflow in a local Python environment

To check that your Flyte project was set up correctly, run the workflow in a local Python environment:

cd workflows
pyflyte run example.py wf

Next steps

To learn about the parts of a Flyte project, including tasks and workflows, see “Flyte project components”.

To run the workflow in your Flyte project in a local Flyte cluster, see the “Running a workflow in a local cluster” section of “Running a workflow locally”.