Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Add python to Windows Subsystem for Linux (WSL) [ubuntu]

Install Windows Subsystem for Linux (WSL) [ubuntu]

Follow this guide to install WSL:

https://docs.microsoft.com/en-us/windows/wsl/install-win10

Prepare WSL (ubuntu)

  1. Get your build tools and python required libraries installed:

    See: https://stackoverflow.com/questions/8097161/how-would-i-build-python-myself-from-source-code-on-ubuntu/31492697

    sudo apt update && sudo apt install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \
    libncurses5-dev libbz2-dev liblzma-dev \
    libsqlite3-dev libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
    libreadline-dev tk tk-dev
    
  2. Install pyenv (which will install python):

    See: https://github.com/pyenv/pyenv-installer

    curl https://pyenv.run | bash
    
  3. After install, it tells you to add the following to your ~/.bashrc file, go do that:

    # Load pyenv automatically by adding
    # the following to ~/.bashrc:
    
    export PATH="/home/{USERNAME}/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
    
  4. Install the latest 'common' versions of python through pyenv:

    # list available python versions
    # pyenv install --list
    pyenv install 3.6.8
    pyenv install 3.7.2
    
  5. Install/Upgrade base libraries into both versions of python:

    pyenv global 3.6.8
    pip install pip --upgrade
    pip install pipenv
    
    pyenv global 3.7.2
    pip install pip --upgrade
    pip install pipenv
    

-- Go to work!

@filipebezerra

This comment has been minimized.

Copy link

@filipebezerra filipebezerra commented Aug 12, 2020

I had an issue trying to install python through pyenv install --list

zsh: command not found: pyenv

I changed my ~/.zshrc from:

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

To

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Original thread: pyenv/pyenv-virtualenv#233 (comment)

@rokdd

This comment has been minimized.

Copy link

@rokdd rokdd commented Oct 8, 2020

same issue like filipebezerra !

@AlinMH

This comment has been minimized.

Copy link

@AlinMH AlinMH commented Nov 22, 2020

@filipebezerra @rokondo

If you're using zsh just put this line in ~/.zshrc:

plugins=(pyenv)

Reference:
https://www.karpton.com/articles/how-to-install-pyenv

@rokdd

This comment has been minimized.

Copy link

@rokdd rokdd commented Nov 25, 2020

plugins=(pyenv)

Perfect thank you!

@Bishwas-py

This comment has been minimized.

Copy link

@Bishwas-py Bishwas-py commented Apr 28, 2021

How about this. SUPER SIMPLE (wsl install pip)

@caniko

This comment has been minimized.

Copy link

@caniko caniko commented Jul 6, 2021

My which python points to my pyenv-win installation on the Windows-side. Any solutions?

@dipi-tech

This comment has been minimized.

Copy link

@dipi-tech dipi-tech commented Jul 13, 2021

My which python points to my pyenv-win installation on the Windows-side. Any solutions?

Facing the same issue, Were you lucky with any resolutions?

@kingaj12

This comment has been minimized.

Copy link

@kingaj12 kingaj12 commented Jul 28, 2021

I had a problem with line endings

/usr/bin/env: ‘bash\r’: No such file or directory

The advice in pyenv issue #1725 helped me.

@rezasugiarto

This comment has been minimized.

Copy link

@rezasugiarto rezasugiarto commented Oct 25, 2021

My which python points to my pyenv-win installation on the Windows-side. Any solutions?

I face this problem and remove all pyenv-win and pyenv wsl then resinstall pyenv wsl

@rezasugiarto

This comment has been minimized.

Copy link

@rezasugiarto rezasugiarto commented Oct 25, 2021

I already install pyenv on wsl and create new env using pyenv virtualenv 3.7.4 env-name.
After that i

  • pyenv activate env-name
  • pip install notebook
  • jupyter-notebook

access notebook. but it says i should apt-install jupyter notebook (basically no jupyter notebook). Even type python doesn't launch python. if i type python3 i got python version 3.8.10 (which is i didn't voluntarily install).
if i check pyenv which python it shows /home/User/.pyenv/versions/env-name/bin/python

Anyone have a guide how to use pyenv on wsl?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment