Building a Python Environment
This guide covers configuring Python environments in envd. If you’re new to envd please read our Tutorial and build configuration guides first.
Let's begin 🐍!
Specifying Python
The default language in envd is Python, thus there is no need to specify language. Or you can use base function to specify.
def build():
base(os="ubuntu20.04", language="python")The default version of python in envd is 3.9 (the latest patch version can be referred here). If you need to specify a particular version, just assign language to a string like pythonX.Y.Z:
def build():
base(os="ubuntu20.04", language="python3.11")WARNING
Python2 is not supported in envd.
Conda packages
You can install conda packages with install.conda_packages function. The following example installs numpy and scipy:
def build():
base(os="ubuntu20.04", language="python")
install.conda_packages(name = [
"numpy",
"scipy",
])PyPI packages
You can install Python packages from PyPI with install.python_packages function. The following example installs scikit-learn and matplotlib:
def build():
base(os="ubuntu20.04", language="python")
install.python_packages(name = [
"scikit-learn",
"matplotlib",
])envd uses system-wide pip to install Python packages in the previous example.
If conda is enabled, you can also install Python packages from PyPI with install.python_packages function. The following example installs numpy and scipy with conda, and installs scikit-learn and matplotlib with pip:
def build():
base(os="ubuntu20.04", language="python")
install.conda_packages(name = [
"numpy",
"scipy",
])
install.python_packages(name = [
"scikit-learn",
"matplotlib",
])envd uses pip in the current conda environment to install the packages in this example.
Specifying shell program
You can specify shell program used in the environment with shell function. The following example uses zsh:
def build():
base(os="ubuntu20.04", language="python")
shell("zsh")Specifying VSCode extensions
You can specify VSCode extensions with install.vscode_extensions function. The following example installs ms-python.python[1]:
def build():
base(os="ubuntu20.04", language="python")
install.vscode_extensions(["ms-python.python"])Setting up the Jupyter notebook
You can set up the Jupyter notebook with config.jupyter function. The following example sets up a Jupyter notebook:
def build():
base(os="ubuntu20.04", language="python")
# Use `config.jupyter()`
# if you do not need to set up password.
config.jupyter(token="password")
Setting up PyPI index mirror
Mirroring or caching of PyPI can be used to speed up local package installation, allow offline work, handle corporate firewalls or just plain Internet flakiness.
PyPI index mirror can be set with config.pip_index(url="<index>", extra_url=<extra>):
config.pip_index(url="https://pypi.tuna.tsinghua.edu.cn/simple")open-vsx is used instead of Microsoft VSCode Marketplace due to licensing issues. ↩︎