Как запустить подпроцесс в Views.py - Django - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь запустить скрипт с источником scripts/earnings.py с аргументом symbol, сгенерированным пользователем.Выходные данные представляют собой граф matplotlib, который я пытаюсь вставить в свой шаблон.

from django.shortcuts import render
import subprocess
from backtests.scripts import earnings

def index(request):

    if 'symbol' in request.GET:
        symbol = request.GET.get('symbol','Invalid Symbol')
        request.session['symbol'] = symbol
    else:
        symbol = request.session['symbol']


    process = subprocess.run(["python earnings", "symbol"], stdout=subprocess.PIPE)

    output = process.stdout

    return render(request, 'backtests/earnings.html', {'symbol' : symbol, 'output' : output})

На данный момент я получаю ошибку

FileNotFoundError: [Errno 2] Нет такогофайл или каталог: 'python заработок': 'python заработок'

1 Ответ

0 голосов
/ 04 марта 2019

Правильный способ вызова subprocess.run - это каждая часть вашей команды в виде отдельной записи списка:

    process = subprocess.run(["python", "earnings.py", "symbol"], stdout=subprocess.PIPE)

Как прокомментировал @Bestastttung, ваш путь, вероятно, также неверен.Попробуйте scripts/earnings.py или абсолютный путь к файлу.

...