Отвечу сам на свой вопрос.
Возможно для таких же ламеров, как я, будет полезно.
1. Прежде чем использовать какую-либо библиотеку в GAE, необходимо удостовериться, поддерживается ли она или нет. Идём по этой ссылке:
https://cloud.google.com/appengine/docs/python/too...
2. Если она поддерживается (как в случае c matplotlib), смотрим в какой степени: смотрим Supported version. У нас это
"1.2.0""latest"
3. Исходя из этого корректируем свой файл
app.yaml
libraries:
- name: jinja2
version: "2.6"
- name: markupsafe
version: "0.15"
- name: matplotlib
version: "latest"
4. Затем уже в нашем main.py (ну или views.py - смотря как вы назвали файл, который обрабатывает представления и в зависимости от структуры проекта) делаем импорт как обычно
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
Итоговый рецепт плоттирования в Flask с помощью matplotlib в GAE выглядит так:
import StringIO
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
def func():
plt.plot(x1, y1, 'r-',
x2, y2 'b-')
output = StringIO.StringIO()
plt.savefig(output, format="png")
img = 'data:image/png;base64,%s' % output.getvalue().encode("base64").strip()
return img
## Само представление
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
@app.route('/index')
def index():
img = func() ## Я создал отдельную функцию (см. выше) для формирования и вызываю её при заходе на страницу
return render_template(
'index.html',
img = img)
index.html<img src="{{ img }}" alt="Image Placeholder" height="400">