Python linux-通过ssh查看不显示颜色

Python linux-通过ssh查看不显示颜色,python,linux,shell,command-line,Python,Linux,Shell,Command Line,我有一个简单的python脚本,它使用包以彩色打印文本 test.py #!/usr/bin/env python from colorama import Fore text = "Test" print(Fore.RED + text) # !/usr/bin/env python import colorama from colorama import Fore colorama.init(wrap=False) text = "Test" print(Fore.RED + t

我有一个简单的python脚本,它使用包以彩色打印文本

test.py

#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
# !/usr/bin/env python
import colorama
from colorama import Fore

colorama.init(wrap=False)

text = "Test"

print(Fore.RED + text)
#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
问题是-当我通过SSH连接时尝试将其放入
watch
命令,它不会显示颜色

通过SSH连接时,我会运行

watch -c test.py
而且它没有显示颜色

我搜索了很多关于这个问题的信息,但是由于某种原因,
watch
via
SSH
不会显示颜色。(使用
-c
标志时也是如此)

这里有什么问题

编辑:


问了另一个重现问题的问题-

更新:在William Russells发表评论后,我在colorama github repo中查找了一下,找到了

通过调用
init(wrap=False)
,告诉colorama要像stdout一样工作,这是不可包装的:

test.py

#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
# !/usr/bin/env python
import colorama
from colorama import Fore

colorama.init(wrap=False)

text = "Test"

print(Fore.RED + text)
#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
您也可以在watch命令中获得适当的颜色


更新2:有关ssh上的颜色,请参阅


原始答案:

好的,我不知道为什么,但是当我删除
colorama.init()
时,它会工作:

test.py

#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
# !/usr/bin/env python
import colorama
from colorama import Fore

colorama.init(wrap=False)

text = "Test"

print(Fore.RED + text)
#!/usr/bin/env python
from colorama import Fore

text = "Test"

print(Fore.RED + text)
watch-c test调用。py
结果为红色的“test”


我从python包索引中复制粘贴了他们的示例,忘记了
init()
,奇怪的是,我得到了彩色手表输出o.o

可能是已确认的副本!使用带有手表和颜色标志的colorama(就像您应该使用的那样)会导致文本不着色,请参阅解决方法的答案。抱歉,忘记提及我是通过SSH连接的,它无法工作。已编辑问题。Sry无法复制,这很可能是您的终端出现问题。我刚刚进入我的家庭服务器,在那里用
watch-c“python test.py”
运行脚本,我得到了颜色…问了另一个重现问题的问题-init()可能是检查它是否正在写入tty,如果不是,则禁用颜色。当运行watch时,包装程序的输出不是tty,因此init()会禁用颜色。抱歉,忘了提到我是通过SSH连接的,它不工作。编辑了问题。问了另一个重现问题的问题-