【问题标题】:VS Code Code Runner doesn't work with virtualenvsVS Code Code Runner 不适用于 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 扩展无法识别它。

标签: python python-3.x visual-studio-code virtualenv vscode-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 打开的终端会话中执行此操作即可。)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-01-17
                • 2019-08-04
                • 2021-12-17
                • 1970-01-01
                • 2022-01-19
                • 2021-06-18
                • 2021-11-08
                相关资源
                最近更新 更多