萌新与小白 发表于 2022-3-24 20:30

vscode python打印一闪而过

本帖最后由 萌新与小白 于 2022-3-28 11:01 编辑

vscode1.64.2和1.65.1和1.65.2,运行python代码,终端中的打印会一闪而过(如动图),1.64.2之前没问题,1.64.1升级1.64.2后我没用过vscode,前段时间才打开用了,然后就发现问题,再一看又有1.65.1和1.65.2了,装了后还有问题。现在我把用户配置文件中所有内容删除,重启vscode,终端打印正常,再把原来的配置写进去,又有问题,可是从以前正常到现在有问题,我没手动改过配置啊,能不能帮我看看是什么原因?下面是我的会出问题的配置文件,它以前正常


删掉第23行,python环境会变为conda默认的base,打印正常,可删掉它的话相当于我的spider环境不能用了;
还原第23行,再手动切换到base环境,打印一闪而过,偶尔打印正常(前几天测试次数太多,偶尔打印正常这点现在不确定);
重新建一个test环境,不手动装任何库,打印一闪而过;
spider环境在cmd和pycharm中打印正常。

python3.9.5,代码就只有print()语句,直接打印字符串

spider环境打印


base环境打印


vscode已安装插件


补充一点,发现这个问题时意识到了,但发帖时忘了说了(感谢2楼的提醒),就是之前打印正常时的运行命令,和现在打印异常时的运行命令,它们不一样。刚好以前打印正常时我因其他问题截过图(截图时间2021年12月5日),现在找出以前的截图:
以前打印正常时,运行命令是

现在打印异常时,运行命令是


总结一下问题发生时的版本
conda和python

vscode中python插件,是正式版


结合2楼给的链接,临时的解决方案有三个:
1.禁用vscode插件的自动更新,并将插件中python版本回退到2022年3月之前的
2.vscode插件中python切换到预发布版本,切换到预发布版后要重新加载或重启vscode,我目前使用的这个方法,目前的预发布版本号(2022年3月26日)如图,打印也正常

预发布版打印正常

3.使用code runner插件,但我这里用它连续两次执行同一个py文件时,在终端中的打印会错位(如动图),很久以前就这样,所以我后来不用它了。这条来自https://www.zhihu.com/question/520154624
code runner版本号

我的code runner设置

code runner连续运行同一个py文件时打印错位

顺带说一下,pycharm2021.2.2以后的版本,连续运行同一个py文件时,打印也会像code runner那样错位,不知道什么原因

最后,感谢2楼的帮助!

cqfcy 发表于 2022-3-26 10:36

本帖最后由 cqfcy 于 2022-3-26 10:39 编辑

可能是因为vscode升级后运行python的命令改变了,生成的命令行是" & conda run -n env名称 --no-capture-output --live-stream python xx.py",会重新激活一个终端,好像有个bug,参考一下这个https://python.iitter.com/other/375659.html
还有这个https://zhuanlan.zhihu.com/p/482515975

萌新与小白 发表于 2022-3-26 13:34

cqfcy 发表于 2022-3-26 10:36
可能是因为vscode升级后运行python的命令改变了,生成的命令行是" & conda run -n env名称 --no-capture-ou ...

你说运行命令不一致,我发帖前发现了,但发帖时忘了说了,刚才补充进去了,审核通过后就能看到。
我用了vscode中预发布版python,现在打印正常了。
但有没有其他长久的方法?比如手动修改运行命令?或者后续是否可以通过更新conda版本解决?或者未来的vscode中的python插件正式版是否会修复这个问题(毕竟现在预发布版正常)?

萌新与小白 发表于 2022-3-26 15:35

cqfcy 发表于 2022-3-26 10:36
可能是因为vscode升级后运行python的命令改变了,生成的命令行是" & conda run -n env名称 --no-capture-ou ...

审核通过了,你看一下我1楼补充的内容,以及我3楼的内容

萌新与小白 发表于 2022-3-27 10:02

cqfcy 发表于 2022-3-26 10:36
可能是因为vscode升级后运行python的命令改变了,生成的命令行是" & conda run -n env名称 --no-capture-ou ...

我又添加了一些内容,你看一下我1楼补充的内容,以及我3楼的内容
页: [1]
查看完整版本: vscode python打印一闪而过