Why PyCharm with WSL2?
PyCharm is a professional grade Python IDE that includes a broad range of capabilities such as auto-completion, debugging and integrated database tooling. Many developers recommend the JetBrains suite for a variety of reasons, however when working with multiple companies and teams they may not have a choice underlying operating system.
Using PyCharm with built-in remote capabilities allows for the same workflow (PyCharm IDE, Linux backend) across platforms including Windows / WSL2, MacOS / Docker, or any desktop and a remote Linux virtual machine in the cloud.
When setting up WSL2, check your BIOS settings and make sure that virtualization is enabled, and VT-D for optimal performance.
For Windows users using the Windows Insider program, open a command prompt with administrator priviledges and run
If you are running the stable version of Windows 10, run the following in an administrator command prompt:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Reboot and then download the Linux Kernel Update package from Microsoft.
wsl to use version 2:
wsl --set-default-version 2
Once complete visit the Microsoft Store and download Ubuntu 20.04. At this point you should be able to open a terminal (if you don’t have one yet checkout microsoft/terminal) and see an Ubuntu 20.04 command prompt.
Download and Configure PyCharm
WSL2 is now installed, and we are ready to
download PyCharm from jetbrains.com and run through the
installer. Once complete start PyCharm, click
Settings -> Project -> Python Interpeter -> Gear Icon -> Add. For the
interpreter type select
WSL and for the path use
/usr/bin/python3. At this point I prefer to swap Ubuntu’s
default python with miniconda, but I will save
that for a later post.
While in the settings panel you can also switch the integrated terminal to use the WSL2 instance. Select
Settings -> Tools -> Terminal and under
Shell path replace
Following the steps outlined above you can now develop fully featured Python applications, with all the advanced IDE features of PyCharm, using Linux but without having to format the system or having to pick a particular set of hardware components. Found a problem or have suggestions on a better method? Let me know!