Skill - Setup python on Linux in Windows using WSL and VS Code
In this post we will learn
- Setup python, pip and venv in Ubuntu inside WSL
- Setup multiple python versions using deadsnakes ppa
- Run python and install packages in WSL (Windows Subsystem for Linux)
- Setup virtual environments for python projects in WSL Ubuntu
- Visual Studio Code (VS Code) support for WSL
update-alternativescommand for aliasing python version withpythoncommand
What is WSL
WSL (Windows Subsystem for Linux) is a windows feature that can run Linux environments like Ubuntu inside windows OS without installing separate virtual machines or dual booting. A detailed post on setting up WSL in windows can be found here
Setup python, pip and venv in Ubuntu
Setting up python
- Python comes pre-installed in Ubuntu. It is accessible as
python3 - Check if python is installed using
python3 --version - Check the installation location of python using
which python - Update all the packages using
sudo apt update && sudo apt upgrade - Update only python3 using
sudo apt upgrade python3
Setting up pip
pipis useful for managing external packages in python- Install pip using
sudo apt install python3-pip
Setting up venv for virtual environments
venvis useful for managing virtual environments in python- Install venv using
sudo apt install python3-venv
Setup multiple python versions using deadsnakes ppa
- deadsnakes ppa contains multiple versions of python that can be installed and used in Ubuntu
- Add deadsnakes ppa repository using
sudo add-apt-repository ppa:deadsnakes/ppa - Now multiple python versions can be installed. For example python 3.7 and python 3.9 can be installed using the following commands
# install python 3.7
sudo apt install python3.7
sudo apt install python3.7-distutils
# install python 3.9
sudo apt install python3.9
sudo apt install python3.9-distutils
- After installation, multiple python versions can be used. For example
python3.9 --versioncommand will use python 3.9 andpython3.7 --versionwill use python 3.7
Run python and install packages in WSL
- Suppose there is a python script named
hello.py - It can be run with python installed in WSL using the command
wsl python3 hello.py - To run with another version of python, say python 3.7, we can use the command
wsl python3.7 hello.py - External packages can be installed using
pip. For examplepython3 -m pip install flaskwill install the flask python module. - External packages can be installed in other python environments also using
pip. For examplepython3.9 -m pip install flaskwill install flask in python 3.9 environment.
Run flask server in WSL
- For example, a server in
server.pyfile can be run using the commandwsl python3 server.py - The server page can be accessed in windows browser without opening WSL
Setup virtual environment for a python project in WSL
- Open the folder containing python file in command line and execute
wslto create a wsl session - Create a virtual environment using
python3 -m venv app_env. A folder name “app_env” should be created - The virtual environment can be activated using the command
source ./app_env/bin/activate - The installed packages can be checked using the command
python3 -m pip list
VS Code support for WSL
- Visual Studio Code supports easy interface for running python from WSL with
WSLVS Code extension - After installing WSL, open command palette with Ctrl+Shift+P shortcut and type WSL. Select “WSL: Open Folder in WSL”.
- Now a folder in VS Code will be opened from an installed WSL distribution
- Python extension should again be installed in VS Code for WSL to enable VS Code python support for folders opened in WSL
- Python version and virtual environment can be selected easily using the options present in the status bar at the bottom of VS Code editor
update-alternatives command for aliasing python version with python command
update-alternativescommand in Ubuntu can be used to create alias for a desired python version- For example the following command will create an alias
pythonfor python3.9
update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
- The alias can be removed if required using the following command. The alias can be changed to another python after this if required.
update-alternatives --remove-all python
Video
The video for this post can be found here
References
- WSL VS Code extension - https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl
Comments
Post a Comment