Попытка получить altair для сохранения .png или .svg на платформе PythonAnywhere - PullRequest
0 голосов
/ 17 июня 2019

foochart.save("foo.svg") требуется драйвер Selenium и Chrome- или Gecko.

Пытался настроить это на моем экземпляре PythonAnywhere.Ребята указали мне на эту ссылку , показывающую, как использовать Selenium внутри PythonAnywhere .

Обратите внимание, они говорят, только установить v2 Selenium.Я установил selenium-2.53.6

Но похоже, что он не работает, и я подозреваю, что altair нужна более новая версия, поскольку ошибка читается как подпись __init__, возможно, изменилась: TypeError: __init__() got an unexpected keyword argument 'options'

Кто-нибудь может посоветовать это?Я действительно огорчен тем, что не могу заставить altair и pythonAnywhere сотрудничать - диаграммы намного приятнее генерировать, когда мне не нужно использовать matplotlib, но мой сервер работает внутри PythonAnywhere.

полный коди трассировка стека:

iris = data.iris()

foo = alt.Chart(iris).mark_point().encode(
    x='petalLength',
    y='petalWidth',
    color='species'
)
foo.save("foo.png")

трассировка стека:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-6aeea1cba6a3> in <module>
----> 1 foo.save("foo.png")

~/.virtualenvs/modern2019/lib/python3.6/site-packages/altair/vegalite/v2/api.py in save(self, fp, format, override_data_transformer, scale_factor, vegalite_version, vega_version, vegaembed_version, **kwargs)
    515         if override_data_transformer:
    516             with data_transformers.enable('default', max_rows=None):
--> 517                 result = save(**kwds)
    518         else:
    519             result = save(**kwds)

~/.virtualenvs/modern2019/lib/python3.6/site-packages/altair/utils/save.py in save(chart, fp, vega_version, vegaembed_version, format, mode, vegalite_version, embed_options, json_kwds, webdriver, scale_factor)
    100                                         vegaembed_version=vegaembed_version,
    101                                         webdriver=webdriver,
--> 102                                         scale_factor=scale_factor)
    103         if format == 'png':
    104             write_file_or_filename(fp, mimebundle['image/png'], mode='wb')

~/.virtualenvs/modern2019/lib/python3.6/site-packages/altair/utils/mimebundle.py in spec_to_mimebundle(spec, format, mode, vega_version, vegaembed_version, vegalite_version, **kwargs)
     54                               vega_version=vega_version,
     55                               vegaembed_version=vegaembed_version,
---> 56                               vegalite_version=vegalite_version, **kwargs)
     57         if format == 'png':
     58             render = base64.b64decode(render.split(',', 1)[1].encode())

~/.virtualenvs/modern2019/lib/python3.6/site-packages/altair/utils/headless.py in compile_spec(spec, format, mode, vega_version, vegaembed_version, vegalite_version, scale_factor, driver_timeout, webdriver)
    152             webdriver_options.add_argument('--no-sandbox')
    153 
--> 154     driver = webdriver_class(options=webdriver_options)
    155 
    156     try:

TypeError: __init__() got an unexpected keyword argument 'options'

1 Ответ

2 голосов
/ 17 июня 2019

Альтаир предполагает, что вы используете селен версии 3 или новее.Обновите установку Selen, и ошибка должна исчезнуть.

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