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中不使用任何虚拟环境,您可以通过以下方式执行:
哪个python3
。您将得到类似于/usr/bin/python3
.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"
}