24

我无法让 Code Runner 扩展与 virtualenvs 一起使用。每当我尝试运行导入仅安装在 virtualenv 中而不是全局 Python 安装中的库的代码时,我都会收到导入错误。在终端中运行完全相同的代码。

我在 Windows 10 上,并且安装了 Python 3.6.5。

我得到的确切错误是:

ModuleNotFoundError: No module named 'bs4'
4

8 回答 8

19

我也面临同样的问题。

在此处输入图像描述 我发现最好的解决方案就是将此行添加到您的用户或工作区设置中(以适合您的项目的为准):

"code-runner.executorMap": {
    "python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
}

你必须输入你的 virtualenv 路径或者你可以使用。

"code-runner.executorMap": {"python":"$pythonPath $fullFileName"}

在此处输入图像描述

在此处输入图像描述

希望这可以帮助你。

于 2019-01-18T09:50:52.763 回答
13

一个可能的解决方案是"code-runner.runInTerminal": true在 VS Code 设置中设置,默认情况下为 false。这样做,Code Runner 将在使用该"terminal.integrated.shell.windows"设置配置的 shell 中运行代码。

之后,使用 Code Runner 运行您的脚本。现在这会打开一个新终端,在执行代码之前,您使用 VS Code 选择的 python 环境Python: Select Interpreter将在其中自动激活。(如果环境没有自动激活,您也可以手动执行此操作,只需确保您在 Code Runner 打开的终端会话中执行此操作。)

于 2018-12-25T17:36:02.000 回答
10

第一种方法:

首先,我建议这样设置executorMap

  "code-runner.executorMap": {
   "python": "\"$pythonPath\" $fullFileName",
   },

通过设置此项,每次您在 VS Code 中更改 Python 解释器版本时,code-runner 将使用相同的版本来执行您的代码。

第二种方法:

我之前使用的另一种方法是在第一行使用 Shebang 代码,如下所示:

#! .\venv\scripts\python.exe

code-runner 与 Shebang 命令兼容,它将使用您在第一行中提到的 Python 版本执行您的代码。

于 2020-01-28T18:16:51.913 回答
3

如果您观看视频,如果您是 mac 用户,则可以在 44.55 分钟看到解决方案。

你必须定义你的$pythonPath. 但是,您不必定义$fullFineName. 如果安装了 Code Runner,它已经为您完成了

将此添加到用户设置:

"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python",

"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}

于 2019-10-13T06:10:54.647 回答
2

我在指向我的 venv 解释器位置的文件开头添加了 shebang 行,例如。

#!/Users/username/Desktop/venv/bin/python

代码运行器似乎工作得很好。

于 2020-01-15T09:32:49.497 回答
1

我激活了 CodeRunner 并遇到了上述所有相同的问题。

然后我继续pip install requests学习在我的情况下存在于 venv 但不是全局性的模块,即使它已经存在并且应该在理论上工作。瞧,它现在工作正常。

我想要点是,如果您在 venv 的创建后安装 CodeRunner,它不会在中游。

于 2019-10-07T22:45:28.073 回答
0

将此添加到您的用户或工作区设置

"code-runner.executorMap": {
        "python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
    },
"code-runner.runInTerminal": true
于 2019-10-10T16:19:38.703 回答
0

PYTHONPATH在运行脚本之前将工作区目录附加到对我有用:

  "code-runner.executorMap": {
    "python": "export PYTHONPATH=\"$PYTHONPATH:$workspaceRoot\";python -u $fullFileName",
  }
于 2020-07-13T00:45:06.763 回答