You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用instagrapi上传相册遇Location未定义等错误求助

解决instagrapi相册上传时的Location相关错误

错误原因及对应解决方案

1. NameError: name 'Location' is not defined

这个错误是因为你没有导入instagrapi中的Location类。Location类属于instagrapi.types模块,必须先导入才能使用。

导入代码:

from instagrapi.types import Location

2. AttributeError: 'str' object has no attribute 'external_id'

album_upload方法的location参数要求传入Location类型的对象,而不是字符串。该对象需要包含external_id等必要属性,直接传位置名称字符串不符合参数要求,因此报错。

正确的做法是通过搜索获取合法的Location对象,或者手动构造符合要求的对象:

方法一:通过搜索获取真实位置

from instagrapi import Client
from instagrapi.types import Location

# 初始化客户端并登录
cl = Client()
cl.login("你的Instagram账号", "你的密码")

# 搜索目标位置(比如搜索"上海")
location_results = cl.location_search("上海")
# 选择合适的搜索结果(这里取第一个)
target_location = location_results[0]

# 上传相册
media_files = ["pic1.jpg", "pic2.png"]  # 替换为你的媒体文件路径
cl.album_upload(
    media=media_files,
    caption="测试相册上传",
    location=target_location
)

方法二:手动构造自定义位置

如果需要使用不存在的自定义位置,可以手动创建Location对象(需传入必要属性):

custom_location = Location(
    name="我的自定义位置",
    lat=31.2304,  # 纬度
    lng=121.4737,  # 经度
    external_id="0",  # 可填0或参考真实位置的external_id格式
    external_id_source="facebook"
)

# 上传时传入该对象
cl.album_upload(media=media_files, caption="自定义位置测试", location=custom_location)

内容的提问来源于stack exchange,提问作者JayTongue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:22:37