VS Code Code Runner不适用于virtualenvs

时间:2018-06-21 10:59:26

标签: python python-3.x visual-studio-code virtualenv vscode-code-runner

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

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

我得到的确切错误是:

ModuleNotFoundError: No module named 'bs4'

8 个答案:

答案 0 :(得分:3)

我也面临着同样的问题。

enter image description here 我发现最好的解决方案是将这行添加到您的 用户或工作空间设置(适合您的项目):

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

您必须输入您的virtualenv路径,否则您可以使用。

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

enter image description here

enter image description here

希望这对您有所帮助。

答案 1 :(得分:2)

可能的解决方案是在VS Code设置中设置 "styles": [ "src/styles.css", "node_modules/primeicons/primeicons.css", "node_modules/primeng/resources/themes/nova-light/theme.css", "node_modules/primeng/resources/primeng.min.css" ], ,默认情况下为false。这样,Code Runner将在使用"code-runner.runInTerminal": true设置配置的shell中运行代码。

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

答案 2 :(得分:2)

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

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

代码运行器似乎工作正常。

答案 3 :(得分:2)

第一种方法:

首先,我建议这样设置executorMap

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

通过设置此选项,每次在VS Code中更改Python解释器版本时,代码运行器都会使用相同版本来执行代码。

第二种方法:

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

#! .\venv\scripts\python.exe

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

答案 4 :(得分:1)

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

然后,我继续进行pip install requests这个模块,该模块在我的情况下存在于venv中,但不存在于全球范围内,即使该模块已经存在并且在理论上应该已经在工作。瞧,它现在可以正常工作了。

我想得出的结论是,如果在venv创建后安装CodeRunner,它就不会中游。

答案 5 :(得分:1)

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

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

将此添加到用户设置:

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

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

答案 6 :(得分:0)

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

"code-runner.executorMap": {
        "python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
    },
"code-runner.runInTerminal": true

答案 7 :(得分:0)

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

  "code-runner.executorMap": {
    "python": "export PYTHONPATH=\"$PYTHONPATH:$workspaceRoot\";python -u $fullFileName",
  }