Python3 в subprocess.check_output использует python2 .7 - PullRequest
0 голосов
/ 11 марта 2020

У меня есть скрипт, управляющий командами mp c с python3. Я использую subprocess.check_output для получения информации:

s = (subprocess.check_output("mpc current -f %title%", shell=True,encoding = 'utf-8'))

Это хорошо работает и дает мне значение в виде строки.

Попытка установить службу для сценария завершается неудачно с ошибкой:

File "/usr/lib/python2.7/subprocess.py", line 216, in check_output
 process = Popen(stdout=PIPE, *popenargs, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'encoding'

Тот же результат (рабочий скрипт, сбой службы) с 'text = true' вместо 'encoding =' utf8 ''.

Почему вместо подпроцесса используется python2 .7 python3? Во второй строке скрипта у меня есть

# -*- coding: utf-8 -*-

Версия Python равна 3.7.3

...