Virtual Environments

Developing in a Virtual Environment

We recommend that you develop your custom plugins inside a virtual environment. This creates an isolated development environment that minimizes the risk of creating a package that Alteryx Designer and other users won’t be able to use. It does this by keeping the dependencies required by different projects separate.

Workspace Setup

Make sure to create a new virtual environment with Python version 3.8 before you initialize your SDK workspace. With Conda, the command is conda create --name <env_name>.

3rd-party Packages

During development, if you need 3rd-party dependencies for your custom plugin, make sure to add these requirements to the requirements-thirdparty.txt file. You should add any locally-created packages that become dependencies to the requirements-local.txt file.

Best Practices

Your virtual environment should only include libraries that help you develop the plugin. Make sure to remove libraries that were installed but not used. This ensures a clean list of dependencies for installs on end-user systems. List any packages that are explicitly imported or required by the plugin in requirements-thirdparty.txt.

In general, anytime you use pip install to add a dependency to your plugin, you should update the requirements-thirdparty.txt file. To automatically generate a requirements file for all packages that are part of the current virtual environment, use the pip freeze > list-of-requirements.txt command.

You will need to prune this file to remove any dependencies that aren’t explicitly imported or required by your plugin. Do this before you copy/overwrite the contents to the requirements-thirdparty.txt file that is created as part of the workspace initialization. The file exists under /backend/requirements-thirdparty.txt.