Как выполнить установку pip с помощью подпроцесса на Django сервере Gunicorn - PullRequest
0 голосов
/ 26 апреля 2020

Мне нужно установить пакет в соответствии с указанным именем. Я пытаюсь установить пакет через subprocess.run(). В Django runserver (его называют dev. Server, я думаю) все работает нормально, но в производственной среде, где у нас есть gunicorn, программа просто зависает после subprocess.run()

Что я делаю не так? Может кто-то указывает мне на проблему? Я вижу subprocess start, но никогда не вижу строку subprocess end в файле журнала. Я пытался поместить что-то вроде ls -la в переменную command. Это так же работает

def install(path):

try:
    command = r"pip install {} --disable-pip-version-check".format(path)
    logger.info("subprocess start")
    process = subprocess.run(command,
                        shell=True,
                        check=True, 
                        universal_newlines=True,
                        stdout=subprocess.PIPE,
                        stderr=subprocess.PIPE )

    logger.info("subprocess end")


    if(process.stdout):
        logger.info("Package Installation Output: {}".format(process.stdout))


    if(process.stderr):
        logger.error("Package Installation Error - Return 0 : {}".format(process.stderr))



except Exception as err:
    logger.error("Package installation error: {}".format(err))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...