Как увидеть виртуальную среду, в которой работает AWS Lambda? - PullRequest
0 голосов
/ 28 сентября 2018

Появляются Amazon Lambdas, создающие новый virtualenv (при условии, что вы используете lambda-uploader и у вас есть файл requirements.txt).Я пытался увидеть, что находится в этой виртуальной среде, используя pip freeze в качестве подпроцесса, но безуспешно.Когда я выполняю такие команды, как перечисление версии Python (3.6), она работает.

Обратите внимание, что она выглядит как установка вещей в моих requirements.txt, когда я импортирую пакеты, она работает нормально,Я просто не могу их перечислить.

import subprocess

def lambda_handler(event, _):

# py_data = subprocess.run(['python -V'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
py_data = subprocess.run(['python', '-V'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("py_data.stdout = %s" % str(py_data.stdout))
print("py_data.stderr = %s" % str(py_data.stderr))

# pip_data = subprocess.run(['pip freeze'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# pip_data = subprocess.run(['pip', 'freeze'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# print("pip_data.stdout = %s" % str(pip_data.stdout))
# print("pip_data.stderr = %s" % str(pip_data.stderr))

pip_data = subprocess.Popen(['pip', 'freeze'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("pip_data.stdout = %s" % str(pip_data.stdout.read()))
print("pip_data.stderr = %s" % str(pip_data.stderr.read()))

return {"statusCode": 200, "Message": bs_status}

Кажется, ни одна из вариаций подпроцесса, которые я пробовал, не работает - хотя перечисление версии Python действительно работает.

Так как я могусделать pip freeze и показать содержимое любой среды, виртуальной или другой, в которой работает Lambda?

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