【问题标题】:Trying to get altair to save .png or .svg in the PythonAnywhere platform试图让 altair 在 PythonAnywhere 平台中保存 .png 或 .svg
【发布时间】:2019-10-31 04:05:12
【问题描述】:

foochart.save("foo.svg")requires Selenium and Chrome- or Gecko-driver.

试图在我的 PythonAnywhere 实例上进行设置。那里的人向我指出了这个链接showing how to use Selenium inside 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'

【问题讨论】:

    标签: selenium pythonanywhere altair


    【解决方案1】:

    Altair 假设您使用的是 selenium 版本 3 或更高版本。更新您的 selenium 安装,错误应该会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2018-07-17
      • 1970-01-01
      相关资源
      最近更新 更多