Мне нужно установить пакет в соответствии с указанным именем. Я пытаюсь установить пакет через 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))