我无法让 Code Runner 扩展与 virtualenvs 一起使用。每当我尝试运行导入仅安装在 virtualenv 中而不是全局 Python 安装中的库的代码时,我都会收到导入错误。在终端中运行完全相同的代码。
我在 Windows 10 上,并且安装了 Python 3.6.5。
我得到的确切错误是:
ModuleNotFoundError: No module named 'bs4'
我无法让 Code Runner 扩展与 virtualenvs 一起使用。每当我尝试运行导入仅安装在 virtualenv 中而不是全局 Python 安装中的库的代码时,我都会收到导入错误。在终端中运行完全相同的代码。
我在 Windows 10 上,并且安装了 Python 3.6.5。
我得到的确切错误是:
ModuleNotFoundError: No module named 'bs4'
我也面临同样的问题。
我发现最好的解决方案就是将此行添加到您的用户或工作区设置中(以适合您的项目的为准):
"code-runner.executorMap": {
"python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
}
你必须输入你的 virtualenv 路径或者你可以使用。
"code-runner.executorMap": {"python":"$pythonPath $fullFileName"}
希望这可以帮助你。
一个可能的解决方案是"code-runner.runInTerminal": true
在 VS Code 设置中设置,默认情况下为 false。这样做,Code Runner 将在使用该"terminal.integrated.shell.windows"
设置配置的 shell 中运行代码。
之后,使用 Code Runner 运行您的脚本。现在这会打开一个新终端,在执行代码之前,您使用 VS Code 选择的 python 环境Python: Select Interpreter
将在其中自动激活。(如果环境没有自动激活,您也可以手动执行此操作,只需确保您在 Code Runner 打开的终端会话中执行此操作。)
第一种方法:
首先,我建议这样设置executorMap
:
"code-runner.executorMap": {
"python": "\"$pythonPath\" $fullFileName",
},
通过设置此项,每次您在 VS Code 中更改 Python 解释器版本时,code-runner 将使用相同的版本来执行您的代码。
第二种方法:
我之前使用的另一种方法是在第一行使用 Shebang 代码,如下所示:
#! .\venv\scripts\python.exe
code-runner 与 Shebang 命令兼容,它将使用您在第一行中提到的 Python 版本执行您的代码。
如果您观看此视频,如果您是 mac 用户,则可以在 44.55 分钟看到解决方案。
你必须定义你的$pythonPath
. 但是,您不必定义$fullFineName
. 如果安装了 Code Runner,它已经为您完成了
将此添加到用户设置:
"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python"
,
"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}
我在指向我的 venv 解释器位置的文件开头添加了 shebang 行,例如。
#!/Users/username/Desktop/venv/bin/python
代码运行器似乎工作得很好。
我激活了 CodeRunner 并遇到了上述所有相同的问题。
然后我继续pip install requests
学习在我的情况下存在于 venv 但不是全局性的模块,即使它已经存在并且应该在理论上工作。瞧,它现在工作正常。
我想要点是,如果您在 venv 的创建后安装 CodeRunner,它不会在中游。
将此添加到您的用户或工作区设置
"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",
}