PyDeck初始化报错:__init__()收到意外关键字参数'mapbox_key'
解决PyDeck中
TypeError: __init__() got an unexpected keyword argument 'mapbox_key'的问题 核心原因
你使用的PyDeck 0.8.0版本中,pdk.Deck类的初始化参数里并没有mapbox_key,对应的正确参数名称是api_key。这个参数名在后续PyDeck版本中才改为mapbox_key,但你的旧版本不支持这个新参数名。
解决方案
直接将代码中pdk.Deck初始化时的mapbox_key=MAPBOX_API_KEY替换为api_key=MAPBOX_API_KEY即可。
修改后的完整代码
import pydeck as pdk import pandas as pd from vega_datasets import data as vds import ipywidgets from palettable.cartocolors.sequential import BrwnYl_3 import json # Public API key MAPBOX_API_KEY = "pk.eyJ1IjoiZXphYW45MDIiLCJhIjoiY2xhdHI4NzI3MDQwazNwcDg1bDdyN3ZzMCJ9.8BOAE-IFmp6PeellMppXsA" # data data = 'https://raw.githubusercontent.com/groundhogday321/dataframe-datasets/master/fake_commute_data.csv' commute_pattern = pd.read_csv(data) print(commute_pattern.head(2)) # view (location, zoom level, etc.) view = pdk.ViewState(latitude=32.800382, longitude=-97.040728, pitch=50, zoom=9) # layer # from home (orange) to work (purple) arc_layer = pdk.Layer('ArcLayer', data=commute_pattern, get_source_position=['from_lon', 'from_lat'], get_target_position=['to_lon', 'to_lat'], get_width=5, get_tilt=15, # RGBA colors (red, green, blue, alpha) get_source_color=[255, 165, 0, 80], get_target_color=[128, 0, 128, 80]) # render map # 修改了参数名:mapbox_key -> api_key arc_layer_map = pdk.Deck(map_style='mapbox://styles/mapbox/light-v10', layers=arc_layer, initial_view_state=view, api_key=MAPBOX_API_KEY) # display and save map (to_html(), show()) arc_layer_map.to_html(r'C:\Users\Admin loc\OneDrive\Bureau\arc_layer_map.html') arc_layer_map.show()
额外验证方案
如果你不想在代码中硬编码API密钥,可以设置系统环境变量MAPBOX_API_KEY,PyDeck 0.8.0会自动读取该环境变量的值,此时初始化pdk.Deck时可以省略api_key参数。
内容的提问来源于stack exchange,提问作者Ezaan
相关产品推荐
相关产品推荐

