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

传入用户名密码调用sharepy登录SharePoint报AttributeError问题求助

解决SharePy程序化传参时的AttributeError问题

我之前也碰到过一模一样的问题,这是因为直接用sharepy.connect()传入账号密码时,会话对象的cookie没有被正确初始化完成,而手动输入账号密码的流程会触发完整的认证步骤,所以能正常工作。下面是具体的解决方案:

1. 先升级SharePy到最新版本

旧版本的SharePy存在这个已知的认证流程bug,先执行升级命令修复基础问题:

pip install --upgrade sharepy

2. 换用手动初始化会话的方式

如果升级后还是出现错误,不要用sharepy.connect()快捷方法,而是手动创建SharePointSession对象并调用login()方法,这样能强制触发完整的认证流程,确保cookie被正确设置到会话中:

import sharepy
import logging
import os

SPUrl = "https://vvv.sharepoint.com"
username = "testuserb@vvvv.onmicrosoft.com"
password = "aaa@123"

# 手动初始化会话并执行登录
s = sharepy.SharePointSession(SPUrl)
s.login(username, password)
s.save()

headers = {"accept": "application/json;odata=verbose", "content-type": "application/x-www-urlencoded; charset=UTF-8"}
fileToUpload = "copyUpload.py"

with open(fileToUpload, 'rb') as read_file:
    content = read_file.read()

# 注意确认上传URL中的站点路径和serverrelativeurl完全匹配
upload_endpoint = "https://aaa.sharepoint.com/sites/vvv/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)"
p = s.post(upload_endpoint, data=content, headers=headers)

print(f"{fileToUpload} Uploaded in SP")
os.remove(fileToUpload)
logging.info("Uploaded file: with response file")

3. 额外检查点

  • 确保SPUrl和上传请求中的站点URL域名、路径完全匹配,不一致会导致会话认证失效
  • 确认你的账号拥有目标SharePoint文件夹的上传权限,权限不足也可能引发间接的会话异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:06:40