VS Code Code Runner 不适用于 virtualenvs
Posted
技术标签:
【中文标题】VS Code Code Runner 不适用于 virtualenvs【英文标题】:VS Code Code Runner doesn't work with virtualenvs 【发布时间】:2018-11-30 16:31:15 【问题描述】:我无法让 Code Runner 扩展与 virtualenvs 一起使用。每当我尝试运行导入仅安装在 virtualenv 中而不是全局 Python 安装中的库的代码时,我都会收到导入错误。在终端运行完全相同的代码。
我使用的是 Windows 10,并且安装了 Python 3.6.5。
我得到的确切错误是:
ModuleNotFoundError: No module named 'bs4'
【问题讨论】:
我用的是wing ide,不过原理大概是一样的。需要复制相关的环境变量、路径、python路径。否则你不在 virtualenv 中,因为它就是这样。任何 ide 都可能允许您这样做。 您应该激活您的虚拟环境,然后输入“pip install library_name”。现在,当您运行代码时,它应该可以正常工作了。 @jmh 问题不在于我没有在正确的 virtualenv 中安装软件包。我可以在终端中运行我的代码,但不能在 Code Runner 的“输出”中运行,因为不知何故 Code Runner 不会在我设置的 virtualenv 中运行代码。 @KennyOstrom 当我在 VS Code 中更改活动的 virtualenv 时,工作区设置中的以下行会更改:“python.pythonPath”:“C:\\Users\\User\\envs\\沙盒\\脚本\\python.exe”。在这种情况下,“沙盒”是我的活动 virtualenv。 virtualenv 正确激活,但只是 Code Runner 扩展无法识别它。 【参考方案1】:第一种方法:
首先,我建议这样设置executorMap
:
"code-runner.executorMap":
"python": "\"$pythonPath\" $fullFileName",
,
通过设置此项,每次您在 VS Code 中更改 Python 解释器版本时,code-runner 都会使用相同的版本来执行您的代码。
第二种方法:
我之前使用的另一种方法是在第一行使用 Shebang 代码,如下所示:
#! .\venv\scripts\python.exe
code-runner 与 Shebang 命令兼容,它将使用您在第一行中提到的 Python 版本执行您的代码。
【讨论】:
【参考方案2】:在运行脚本之前将工作区目录附加到PYTHONPATH
对我有用:
"code-runner.executorMap":
"python": "export PYTHONPATH=\"$PYTHONPATH:$workspaceRoot\";python -u $fullFileName",
【讨论】:
【参考方案3】:我在文件开头添加了 shebang 行,指向我的 venv 解释器位置,例如。
#!/Users/username/Desktop/venv/bin/python
代码运行器似乎工作得很好。
【讨论】:
【参考方案4】:如果你观看this视频,如果你是mac用户,你可以在44.55分钟看到解决方案。
你必须定义你的$pythonPath
。但是,您不必定义$fullFineName
。如果安装了 Code Runner,它已经为您完成了
将此添加到用户设置:
"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python"
,
"code-runner.executorMap": "python": "$pythonPath -u $fullFileName"
【讨论】:
【参考方案5】:将此添加到您的用户或工作区设置中
"code-runner.executorMap":
"python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
,
"code-runner.runInTerminal": true
【讨论】:
【参考方案6】:我激活了 CodeRunner 并遇到了上述所有相同的问题。
然后我继续使用 pip install requests
模块,在我的情况下,该模块存在于 venv 中但不是全局存在的,即使它已经存在并且理论上应该可以工作。瞧,它现在可以正常工作了。
我猜想,如果您在 venv 的创建后安装 CodeRunner,它不会在中途运行。
【讨论】:
【参考方案7】:我也遇到了同样的问题。
我发现最好的解决方案就是将此行添加到您的 用户或工作区设置(以适合您的项目为准):
"code-runner.executorMap":
"python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
你必须输入你的 virtualenv 路径或者你可以使用。
"code-runner.executorMap": "python":"$pythonPath $fullFileName"
希望对你有所帮助。
【讨论】:
我刚刚放弃了使用 Code Runner 扩展...现在我只是在终端中运行我的代码。首先我激活 virtualenv,然后输入 code 。在项目目录中打开 VS Code。这似乎是目前对我来说最好的方式。然后我按 CTRL + K + A 运行代码。【参考方案8】:一种可能的解决方案是在 VS Code 设置中设置 "code-runner.runInTerminal": true
,默认情况下为 false。这样做,Code Runner 将在使用 "terminal.integrated.shell.windows"
设置配置的 shell 中运行代码。
之后,使用 Code Runner 运行您的脚本。现在这会打开一个新终端,在执行代码之前,您使用 VS Code 的Python: Select Interpreter
选择的 python 环境将在其中自动激活。
(如果环境没有自动激活,您也可以手动执行此操作,只需确保您在 Code Runner 打开的终端会话中执行此操作即可。)
【讨论】:
以上是关于VS Code Code Runner 不适用于 virtualenvs的主要内容,如果未能解决你的问题,请参考以下文章
VS Code Prettier - Code Formatter Extension 不适用于使用 Typescript 模板的 Create-React-App
VS Code 中的调试不适用于 Typescript Vue 应用程序
Flutter/Dart 自动完成功能适用于 VS Code,但不适用于 Android Studio
使用VS Code插件Code Runner一键运行OpenSees