Skip to content

Instantly share code, notes, and snippets.

@kauffmanes
Last active November 20, 2024 02:50
Show Gist options
  • Save kauffmanes/5e74916617f9993bc3479f401dfec7da to your computer and use it in GitHub Desktop.
Save kauffmanes/5e74916617f9993bc3479f401dfec7da to your computer and use it in GitHub Desktop.
Install Anaconda on Windows Subsystem for Linux (WSL)

Thanks everyone for commenting/contributing! I made this in college for a class and I no longer really use the technology. I encourage you all to help each other, but I probably won't be answering questions anymore.

This article is also on my blog: https://emilykauffman.com/blog/install-anaconda-on-wsl

Note: $ denotes the start of a command. Don't actually type this.

Steps to Install Anaconda on Windows Ubuntu Terminal

  1. Install WSL (Ubuntu for Windows - can be found in Windows Store). I recommend the latest version (I'm using 18.04) because there are some bugs they worked out during 14/16 (microsoft/WSL#785)
  2. Go to https://repo.continuum.io/archive to find the list of Anaconda releases
  3. Select the release you want. I have a 64-bit computer, so I chose the latest release ending in x86_64.sh. If I had a 32-bit computer, I'd select the x86.sh version. If you accidentally try to install the wrong one, you'll get a warning in the terminal. I chose Anaconda3-5.2.0-Linux-x86_64.sh.
  4. From the terminal run wget https://repo.continuum.io/archive/[YOUR VERSION]. Example: $ wget https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh
  5. Run the installation script: $ bash Anaconda[YOUR VERSION].sh ($ bash Anaconda3-5.2.0-Linux-x86_64.sh)
  6. Read the license agreement and follow the prompts to accept. When asks you if you'd like the installer to prepend it to the path, say yes.
  7. Optionally install VS Code when prompted (some have reported this installation doesn't work - checkout https://gist.github.com/kauffmanes/5e74916617f9993bc3479f401dfec7da#gistcomment-3665550)
  8. Close the terminal and reopen it to reload .bash configs.
  9. To test that it worked, run $ which python. It should print a path that has anaconda in it. Mine is /home/kauff/anaconda3/bin/python. If it doesn't have anaconda in the path, do the next step. Otherwise, move to step 11.
  10. Manually add the Anaconda bin folder to your PATH. To do this, I added "export PATH=/home/kauff/anaconda3/bin:$PATH" to the bottom of my ~/.bashrc file.
  11. To open jupyter, type $ jupyter notebook --no-browser. The no browser flag will still run Jupyter on port 8888, but it won't pop it open automatically. it's necessary since you don't have a browser (probably) in your subsystem. In the terminal, it will give you a link to paste into your browser. If it worked, you should see your notebooks!

Leave a comment on anything you see that doesn't work and I can look into it!

A few other things that I did out of laziness but aren't necessary

  • made a symlink between my C:/Users/kauff/Documents/JupyterNotebooks folder (where I put my downloaded notebooks in Windows) to my Ubuntu notebook directory: In the WSL terminal:
  1. cd ~
  2. ln -s /mnt/c/Users/kauff/Documents/JupyterNotebooks/ notebooks Now when you look at Jupyter on :8888, you should see a notebooks folder that has everything your C:/Users/kauff folder has.
  3. I made an alias for the juypter command by putting this command in my .bash_aliases: alias jup='cd /home/kauff/notebooks && jupyter notebook --no-browser. Restart the terminal for this new command to take effect.
  4. To test, simply type jup from anywhere in the ubuntu directory and it will take you notebooks folder and run jupyter. When you copy and paste the URL, you'll see everything in your C:/Users/kauff/JupyterNotebooks folder.

Troubleshooting

Thanks to Alexander for the tip: "A note to be made from my installation -- there was an issue with Jupyter that required conda update conda and conda update conda-build. I then uninstalled/reinstalled jupyter with conda to avoid a 500 error for dependencies".

Sources

https://conda.io/docs/glossary.html#anaconda-glossary https://www.cgranade.com/blog/2016/08/22/qutip-on-wsl.html https://jupyter.readthedocs.io/en/latest/install.html

@husseinkorly
Copy link

Not sure if you tried to click on select interpreter

click1

and then see something like this

click2

@IanThomasICT
Copy link

Similar to @McNickSisto, I was struggling to manually add the directory to my PATH using the command you provided.

I was able to get the issue fixed by using this notation in ~/.bashrc export PATH=$PATH:/home/{username}/anaconda3/bin

@raghu330
Copy link

Thanks Kaufmanes. I have been using WSL2 for the past 1 year and it gives me the best of both worlds. I have my envs setup and everything setup in WSL. But I have one small issue or more like a wishlist.. I prefer using PyCharm as my IDE in windows as it's a decent IDE and gives me clarity.. However, I would like window's version of PyCharm to make use of WSL's python! I tried several ways, but unable to get each of them talk to!! Any ideas!

@sharadlaad
Copy link

Getting error ERR_CONNECTION_REFUSED "This site can’t be reachedlocalhost refused to connect." while opening jupyter notebook URL from windows chrome browser. Do we need to map any port from WL2 to local host?

@natuan310
Copy link

Thank you for sharing. I installed successfully but I don't know how to get conda recognized after start a new wsl instance. Need to run "source ~/.bashrc" everytime. Could you tell me what to keep conda auto recognized by wsl?

@AlexanderLavelle
Copy link

A note to be made from my installation -- there was an issue with Jupyter that was giving me a 500 error when I attempted to open any notebooks. To fix:

conda update conda
conda update conda-build
conda uninstall jupyter
conda install jupyter

This worked. Based on a set of solutions on Stack Overflow. Best of luck!

@Ibrarhussainmughal
Copy link

I have a issue with during open the environment of anaconda in wsl2
How i can activate environment i have environment but when i try with source environment name /bin/activate
The answer is
1648796649354273860770329608235

@tzdanows
Copy link

I managed to get this working with numerous issues along the way but upon opening WSL I need to run source /installrepo/bin/activate, (after the install succeeds) but I now need to run that every time I open WSL, anyone have advice for how to fix this? Might post details on how I managed to get mine working if I can get this resolved.

@CMWolfe922
Copy link

I am trying to use python environments that I already had installed and I keep getting errors saying: ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? Is there a way to fix this? So that I can use both conda environments and my previous python environments I already have built for other projects?

@LuposX
Copy link

LuposX commented Jul 1, 2022

Nice tutorial, thanks.

@MarinEstrada
Copy link

So I'm wondering, If I ever choose to uninstall anaconda would I just delete the anaconda3 file recursively?

@milieere
Copy link

milieere commented Oct 3, 2022

Hi there, thanks for the nice tutorial.

I would add one more step after step 10:

  1. Run source ~/.bashrc and conda init

This will source changes to your PATH and initialize the shell for conda use.

@prashdash112
Copy link

Hi all,

I already have conda installed on windows. I am trying to access the preinstalled conda & conda envs that I created but so far unable to run it from wsl2. Any workaround is highly appreciated. I don't want the Linux anaconda to mess with my windows anaconda.

Thanks.

@timuroeztuerk
Copy link

Thank you, worked perfectly for me!

@Philipwur
Copy link

Great help, thanks!

@DavidGomez00
Copy link

I have Anaconda installed on my main Windows 10 System using the *.exe (latest version). I am doing a lot of work on a remote linux station and want to use the WSL to run Anaconda, Jupyter Notebooks, etc. If I install Anaconda on the WSL via these steps, it shouldn't mess up the Anaconda installation on the Windows side should it? Any insight in this regard is appreciated.

Would love some insight on this. Many users already have Anaconda installed on Windows, so using it through WSL 2 instead of 'double install', would be great.

Has anyone figured this out yet? I agree it's a great concern.

@d-davy
Copy link

d-davy commented Jan 10, 2023

I have Anaconda installed on my main Windows 10 System using the *.exe (latest version). I am doing a lot of work on a remote linux station and want to use the WSL to run Anaconda, Jupyter Notebooks, etc. If I install Anaconda on the WSL via these steps, it shouldn't mess up the Anaconda installation on the Windows side should it? Any insight in this regard is appreciated.

Would love some insight on this. Many users already have Anaconda installed on Windows, so using it through WSL 2 instead of 'double install', would be great.

Has anyone figured this out yet? I agree it's a great concern.

Regarding the original comment---no, it shouldn't mess up the Anaconda on the Windows side; they are indeed separate, so you will end up with two installations and different environments.

As for the follow-up on using the Anaconda installed on Windows from the WSL side, I haven't really tried this one myself, so right now I'm mostly speculating, but it should be possible since you have access to the Windows file system via /mnt.
For that, I'd think that the way to go is to create symbolic links to the Anaconda installation, in a similar fashion to OP's shortcut to the notebooks.
I used ChatGPT to come up with something along these lines:

sudo ln -s /mnt/c/ProgramData/Anaconda3/ /usr/local/anaconda3
sudo ln -s /mnt/c/ProgramData/Anaconda3/envs/myenv/ /usr/local/anaconda3/envs/myenv

Of course, you'd replace the paths with whatever you have on your system.
Then, you can use these symlinks to add the bins to the path by adding the following lines to the the .bashrc file:

export PATH="/usr/local/anaconda3/bin:$PATH"
export PATH="/usr/local/anaconda3/envs/myenv/bin:$PATH"

Note that, in any case, WSL does not have native GUI support, as previously stated.

@junsukha
Copy link

Thank you so much!

@Gitgidy
Copy link

Gitgidy commented Aug 6, 2023

ty 👍

@EliseoMolina
Copy link

Thanks for the excelent tutorial

@we85
Copy link

we85 commented Sep 22, 2023

Thank you!!

@widiarsa1605
Copy link

hi i can't do $ bash Anaconda3-5.2.0-Linux-x86_64.sh
the license already show up, and i already agreed. Unpacking load already happen. but it only reach 30%, suddenly the linux terminal close and comeback to powershell. How to resolve it?

@Reza-Andalibi
Copy link

Worked perfectly for me thanks :)

@tvy14
Copy link

tvy14 commented Mar 27, 2024

I have Anaconda installed on my main Windows 10 System using the *.exe (latest version). I am doing a lot of work on a remote linux station and want to use the WSL to run Anaconda, Jupyter Notebooks, etc. If I install Anaconda on the WSL via these steps, it shouldn't mess up the Anaconda installation on the Windows side should it? Any insight in this regard is appreciated.

Would love some insight on this. Many users already have Anaconda installed on Windows, so using it through WSL 2 instead of 'double install', would be great.

Has anyone figured this out yet? I agree it's a great concern.

Regarding the original comment---no, it shouldn't mess up the Anaconda on the Windows side; they are indeed separate, so you will end up with two installations and different environments.

As for the follow-up on using the Anaconda installed on Windows from the WSL side, I haven't really tried this one myself, so right now I'm mostly speculating, but it should be possible since you have access to the Windows file system via /mnt. For that, I'd think that the way to go is to create symbolic links to the Anaconda installation, in a similar fashion to OP's shortcut to the notebooks. I used ChatGPT to come up with something along these lines:

sudo ln -s /mnt/c/ProgramData/Anaconda3/ /usr/local/anaconda3
sudo ln -s /mnt/c/ProgramData/Anaconda3/envs/myenv/ /usr/local/anaconda3/envs/myenv

Of course, you'd replace the paths with whatever you have on your system. Then, you can use these symlinks to add the bins to the path by adding the following lines to the the .bashrc file:

export PATH="/usr/local/anaconda3/bin:$PATH"
export PATH="/usr/local/anaconda3/envs/myenv/bin:$PATH"

Note that, in any case, WSL does not have native GUI support, as previously stated.

Hello Davy, thanks for the insights. I have a little bit concern since I am trying to get used to WSL recently from Ubuntu,

exporting the path of Anaconda from the Windows side still makes me unable to execute conda command on my WSL, but giving me double anaconda3/ folder instead. any of you encounter this kind of issues?

I resolved my issue by installing conda to my wsl and removing my conda from windows instead, sounds like a noob from me but that's the quick fix for me with my limited understanding regarding Windows env. setups Please let me know your thoughts guys, Thanks a lot

@gianni171
Copy link

I'm having issues in the bashing process, can someone help?

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