Configure a remote interpreter using WSL
You can use Windows Subsystem for Linux (WSL) to work with a Python interpreter available in your Linux distribution.
Fulfill the preliminary steps
Click the Windows button in the lower-left corner of the screen and start typing
System Information. To ensure that your system works well with WSL, upgrade your Windows to the latest available version.
Install the Windows Subsystem for Linux and initialize your Linux distribution as described in the WSL Installation Guide.
Configure remote interpreter via WSL
Open the Add Python Interpreter dialog by either way:
When you're in the Editor, the most convenient way is to use the Python Interpreter widget in the Status bar. Click the widget and select
If you are in the Settings/Preferences dialog (Ctrl+Alt+S), select . Click the icon and select Add.
In the left-hand pane of the dialog, click WSL.
Select the Linux distribution and specify the path to the python executable in the selected Linux distribution.
Once done, the new interpreter will be added to your project, and the default mnt mappings will be set.
Note that with WSL you cannot create virtual environments: all packages you install will be added to the corresponding system interpreter. You will be asked to enter your sudo password.
PyCharm allows you to use custom Linux distributions run on WSL. This can be done by editing the wsl.distributions.xml configuration file created by PyCharm automatically after detecting WSL. To add a custom distribution, do the following:
Open the %\HOMEPATH%\.PyCharm2019.1\config\options\wsl.distributions.xml file.
descriptorelement and provide settings to access your custom distribution. Note that the
idvalue should be unique. For example:<!-- ... --> <descriptor> <id>Arch</id> <microsoft-id>Arch</microsoft-id> <executable-path>c:/linux/arch.exe</executable-path> <presentable-name>Arch</presentable-name> </descriptor> <!-- ... -->
Consult the Windows registry to check the id and executable-path values.
Restart PyCharm and add your custom distribution as a remote interpreter as described above.