subprocess.check_output дает ошибку Windows - PullRequest
0 голосов
/ 03 мая 2018

Я пытался запустить этот файл с именем develop.py, написанный на python. Но это дает ошибку. Вот мой код:

import base64
import getpass
import os
import subprocess
import sys

credentials = subprocess.check_output([
    'openssl',
    'aes-256-cbc',
    '-d',
    '-in',
    'credentials.development'
    ], shell=True)

env = os.environ.copy()
env['CREDENTIALS'] = credentials
env['CONFIG'] = 'config.yaml.development'
env['ENVIRONMENT'] = 'development'

subprocess.check_call(['grunt', 'web:develop'], env=env)

Вот результат, когда я запускаю файл:

 E:\QA\QA>python develop.py
    'openssl' is not recognized as an internal or external command,
    operable program or batch file.
    Traceback (most recent call last):
        File "develop.py", line 13, in <module>
           ], shell=True)
        File "C:\Python27\lib\subprocess.py", line 219, in check_output
            raise CalledProcessError(retcode, cmd, output=output)
        subprocess.CalledProcessError: Command '['openssl', 'aes-256-cbc', 
 '-d', '-in', 'credentials.development']' returned non-zero exit status 1

Окружающая среда:
Windows 10 (64 бит)
Python 2.7

Как это исправить ??

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

это значит Один из командиров:

'openssl',
'aes-256-cbc',
'-d',
'-in',
'credentials.development'

не существует в openssl

Но если вы попробуете это:

import base64
import getpass
import os
import subprocess
import sys


credentials = subprocess.check_output(['dir'], shell=True)
env = os.environ.copy()
env['CREDENTIALS'] = credentials
env['CONFIG'] = 'config.yaml.development'
env['ENVIRONMENT'] = 'development'
subprocess.check_call(['grunt', 'web:develop'], env=env)

с dir, он будет отлично работать bcz Команда существует

0 голосов
/ 03 мая 2018

Я думаю, что это проблема пути, а не проблема Python. Упомянутая ошибка обнаруживается, когда Windows не может найти нужную вам команду.

В этом случае команда openssl.

Если openssl не добавлено в path или не указан путь к файлу, это приведет к этой ошибке.

Поэтому вам следует проверить, что путь был добавлен к path переменной среды, а затем добавить его, если его нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...