Появляются 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?