virtualenv в подсистеме Windows для Linux (WSL)

#python #virtualenv #windows-subsystem-for-linux #vscode-remote

Вопрос:

Я использую компьютер с Windows 10 и хочу настроить среду разработки WSL. Я открыл vscode в WSL и все настроил. Установленный pip и т.д.

Я использую pipenv для установки зависимостей. После этого мой веб-сайт не запустится, потому что пакет python не может быть найден:

 Exception has occurred: 

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?
  File "/mnt/d/dev/django_appelent_api/manage.py", line 11, in main
    from django.core.management import execute_from_command_line

The above exception was the direct cause of the following exception:

  File "/mnt/d/dev/django_appelent_api/manage.py", line 13, in main
    raise ImportError(
  File "/mnt/d/dev/django_appelent_api/manage.py", line 22, in <module>
    main()
 

Теперь, когда я посмотрел на virtualenv папку (чтобы посмотреть, был ли там пакет), я увидел разницу между моим windows venv и моим ubuntu venv. В этой папке установлены пакеты Windows:

 C:Users<username>\.virtualenvsdjango_appelent_api-8qkCZVASLibsite-packages
 

и ubuntu, установленная в этой папке:

 \wsl$Ubuntu-20.04home<username>\.localsharevirtualenvsdjango_appelent_api-PLA7kcVHlib
 

Может ли это объяснить, почему у меня возникла эта ошибка? Windows установлена в lib/site-пакетах, в то время как ubuntu поместила между ними папку под названием python3.8.

Мой отладочный файл (в VSCODE) выглядит так:

 {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\manage.py",
            "args": [
                "runserver"
            ],
            "django": true
        },
        {
            "name": "Python: Django on WSL",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "runserver"
            ],
            "django": true
        }
    ]
}