Python睡眠在VS代码中的Conda环境中不起作用

Python睡眠在VS代码中的Conda环境中不起作用,python,visual-studio-code,conda,Python,Visual Studio Code,Conda,我有以下代码片段 import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.") 在VS Code:Conda环境中,它不会先打印语句01,延迟2.4s后再打印语句02。相反,在2.4s延迟后,这两个版本同时打印。这个问题在本机python版本(使用Mac OS的python 3.x)中不可见。如何解决这个问题 p、 我发现这个错误与正在执行的命令有关。执行的默认命令是

我有以下代码片段

import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
在VS Code:Conda环境中,它不会先打印语句01,延迟2.4s后再打印语句02。相反,在2.4s延迟后,这两个版本同时打印。这个问题在本机python版本(使用Mac OS的python 3.x)中不可见。如何解决这个问题

p、 我发现这个错误与正在执行的命令有关。执行的默认命令是

conda run -n env_name python "path/test_print.py"
如果按以下方式更改,则会延迟打印

python "path/test_print.py"

如何更改VS代码中的默认执行命令?

我假设您在本机python中不使用任何虚拟环境,您可以通过以下方式执行:

  • 在VS代码中打开终端(或使用操作系统的终端)
  • 假设您的默认python链接到python2,请键入
    哪个python3
    。您将得到类似于
    /usr/bin/python3
  • 在您所在的项目文件夹中打开VS代码的用户设置。如果没有,请创建一个:
    .vscode/settings.json
  • 键入并保存

  • 或者,如果您想全局更改它,请在设置文件->首选项->设置中执行,然后搜索python路径,并将其设置为
    /usr/bin/python3

    我认为这里的根本问题是“conda run”缓冲区stdout直到命令完成-请参阅:-但同时我想唯一的解决方法是更改正在执行的命令。我认为默认的启动命令在最近的(2020.1.57204)VS代码python扩展版本中发生了更改,因为在此之前我没有遇到任何此类问题

    我发现将condaPath的VSCode Python扩展设置从默认值(空白)更改为无效的设置(例如condaX),其效果是将启动命令从“conda run-n…”更改为“&C:/ProgramData/Anaconda3/envs/tf gpu/Python.exe full_path_到_py_file.py”-在适当的conda环境中运行(在我的情况下是tf gpu),不会出现IO缓冲问题。(我显然是在Windows上运行的。)


    我之前使用设置了conda launching,我不确定这些更改是否与问题有关,但我已经重新安装了VSCode python扩展,并且找不到这些更改的痕迹,因此我怀疑这些更改中的任何一个对于condaPath更改是否如我所描述的那样起作用是必要的

    “如何更改VS代码中的默认执行命令?“-那么现在这是一个完全不同的问题吗?不是一个完全不同的问题,而是与用于执行文件的命令相关的问题。无论哪种方式,都有解决此问题的方法吗?这可以简单地使用VSCode的页脚部分来完成。这里的问题是,我需要将包安装到默认的python版本。那么这将与其他程序发生冲突。作为一个脚本的示例,我需要Tensorflow 1.14,而另一个脚本需要Tensorflow 2.0。以前没有这样的问题。正如我前面解释的,这与命令的执行方式有关。是否有办法更改正在执行的命令?我可以确认问题是
    conda run
    ,解决方案是关闭Anaconda,或者等待Python扩展的下一个发行版,它将回滚
    conda run
    的使用。
    {
        "python.pythonPath": "/usr/bin/python3"
    }