VS Code Code Runner не работает с virtualenvs
Я не могу заставить расширение Code Runner работать с virtualenvs. Всякий раз, когда я пытаюсь запустить код, который импортирует библиотеку, которая установлена только в virtualenv, а не в глобальной установке Python, я получаю ошибку импорта. Запуск точно такой же код в терминале работает.
Я на Windows 10 и у меня установлен Python 3.6.5.
Точная ошибка, которую я получаю:
ModuleNotFoundError: No module named 'bs4'
0 ответов
Я также столкнулся с той же проблемой.
https://stackr u.com/images/1cc458a3e67ab61d0e4cee49659625e3f1b0825a.png Решение, которое я нашел лучше всего, это просто добавить эту строку в настройки пользователя или рабочего пространства (в зависимости от того, что подходит вашим проектам):
"code-runner.executorMap": {
"python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
}
Вы должны войти в свой путь virtualenv, или вы могли бы использовать.
"code-runner.executorMap": {"python":"$pythonPath $fullFileName"}
https://stackr u.com/images/348d644acb87c1290908476ec5f5ccd26e187a54.png
https://stackr u.com/images/b00592ce1a76a1ced7b7926e4b79bcab14670e4a.png
надеюсь, это поможет вам.
Возможным решением было бы установить "code-runner.runInTerminal": true
в настройках VS Code, который по умолчанию равен false. При этом Code Runner выполнит код в оболочке, настроенной с помощью "terminal.integrated.shell.windows"
установка.
После этого запустите ваш скрипт с помощью Code Runner. Теперь открывается новый терминал, в котором среда Python, выбранная вами с использованием кода VS Python: Select Interpreter
будет активирован автоматически перед выполнением кода.
(Если среда не активируется автоматически, вы можете сделать это также вручную, просто убедитесь, что вы делаете это в сеансе терминала, который был открыт Code Runner.)
я использую эти способы:
Сначала я предлагаю установить executerMap следующим образом:
"code-runner.executorMap": {
"python": "\"$pythonPath\" $fullFileName",
},
установив это, каждый раз, когда вы меняете версию интерпретатора python в vscode, code-runner будет использовать ту же версию для выполнения вашего кода.
Еще один метод, который я использовал раньше, заключался в следующем:
использовать код shebang в первой строке, например:
#! .\venv\scripts\python.exe
code-runner совместим с командой shebang, и он будет выполнять ваш код с версией python, которую вы упомянули в первой строке.
В заключение прошу прощения, если в моем тексте есть грамматические ошибки, я не являюсь носителем английского языка.
Если вы посмотрите это видео, вы увидите решение через 44,55 минуты, если вы пользователь Mac.
Вы должны определить свой $pythonPath
. Однако вам не нужно определять$fullFineName
. Это уже сделано за вас, если установлен Code Runner
Добавьте это в настройки пользователя:
"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python"
,
"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}
Я добавил строку shebang в начало файла, указывающую на местоположение моего интерпретатора venv, например.
#!/Users/username/Desktop/venv/bin/python
Code runner, кажется, работает нормально.
Я активировал CodeRunner и столкнулся со всеми теми же проблемами, о которых говорилось выше.
Затем я приступил к pip install requests
модуль, который в моем случае присутствовал в venv, но не глобально, хотя он уже присутствовал и должен был работать теоретически. О чудо, теперь он работает нормально.
Я предполагаю, что вывод заключается в том, что CodeRunner не поднимает промежуточный поток, если вы устанавливаете его после создания venv.
Добавьте это в настройки пользователя или рабочего пространства
"code-runner.executorMap": {
"python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
},
"code-runner.runInTerminal": true
Добавление каталога рабочей области к PYTHONPATH
перед запуском скрипт у меня работал:
"code-runner.executorMap": {
"python": "export PYTHONPATH=\"$PYTHONPATH:$workspaceRoot\";python -u $fullFileName",
}