# Requirements

## What are requirements?

Inside each Canvas you can install the packages that are required to execute a particular project. This means each canvas has an equivalent of a venv that can be customized - no more issues with package version conflicts or reinstalling python.&#x20;

There is a set of commonly used packages pre-installed for the user to get started.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2FERB12fphg31pWleZYyF2%2FScreen%20Recording%202025-03-28%20at%2011.32.47%E2%80%AFAM.mp4?alt=media&token=10664239-28de-402f-b9af-e834d4cf47a2>" %}
Pre-installed packages
{% endembed %}

## Adding custom package

Additionally, users have the option to install libraries of their choice. Canvas facilitates this by allowing users to add and configure the version of the library beforehand. This capability enables users to tailor their environment to their specific requirements and preferences.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2Fy2LDNM8gDjS8v6PKg8wr%2FMy%20Movie%201.mp4?alt=media&token=9a592c42-c848-497d-a6cb-996a23805c40>" %}
Adding custom package
{% endembed %}

## Specifying Library Versions

To ensure compatibility and stability, users can specify the exact version of the library they wish to install. This is crucial for avoiding potential conflicts or issues that may arise from using different versions of the same library.

The requirement interface within Canvas where the user can add or configure libraries in the version placeholder.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2Fhbav1eoy4jDNj6ipHaBI%2FMy%20Movie%201.mp4?alt=media&token=56c70693-4feb-4174-a859-7971312a4e39>" %}
Specifying package version
{% endembed %}

## Adding Linux packages

The user can also install Linux package in the Linux packages section. Below is an example of Linux package for OpenCV to the canvas requirements and building the env. By default, the latest version is installed.&#x20;

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2F3bji4ZoCfIfYbYPy8p0B%2FScreen%20Recording%202025-03-28%20at%202.13.15%E2%80%AFPM.mp4?alt=media&token=95ce29e4-52d5-46ef-90c8-61a4bf5c4eb1>" %}
Adding Linux packages
{% endembed %}

## Adding environment variable

In certain instances, packages may necessitate a specific path for downloading data or configuring the environment or setting up environment for GPU usage. To accommodate this, Canvas Zerve provides users with the option to specify a path for packages during installation. This feature empowers users to setup the path using custom environment variables, ensuring flexibility and compatibility with various setups.

## Environment Variable for configuration setup

The first example use case of environment variable is, setting up the path for matplotlib configuration.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2Fo7wstFMpAjJGYtiSPbwv%2FMy%20Movie%201.mp4?alt=media&token=e16cba87-d4db-4ebb-b246-d13870eab933>" %}
Configuration environment for Matplotlib
{% endembed %}

## Environment Variable for dependencies download

The second example use is setting up the path to download dependencies installation for NLTK package.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIQKNeqjEeOp9UwUcB9R9%2Fuploads%2F8B80lchAijahQ3Enq7a7%2FMy%20Movie%201.mp4?alt=media&token=ad96b744-3932-43ac-8c2d-900f2a27cbf0>" %}
Adding Environment Variable path
{% endembed %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zerve.ai/guide/canvas-view/installing-packages/requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
