Office365-rest-python-client: Запрашивает ошибку MissingSchema при загрузке файла

Созданный на 2 окт. 2020  ·  4Комментарии  ·  Источник: vgrem/Office365-REST-Python-Client

Привет!

У меня возникают проблемы с загрузкой файла из SharePoint с использованием последней версии Office365 2.2.1. Когда я пытаюсь загрузить файл, появляется ошибка "MissingSchema" из модуля запросов. Я не знаю, что случилось, если я вернусь к версии 2.1.5, код будет работать нормально. Большое спасибо, и я ценю усердную работу в этом модуле; супер полезно!

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File

def auth(username, password):
    ctx_auth = AuthenticationContext(url)
    if ctx_auth.acquire_token_for_user(username, password):
      ctx = ClientContext(url, ctx_auth)
      return ctx

ctx = auth(username, password)
response = File.open_binary(ctx, relative_url)

Ошибка:
MissingSchema: Invalid URL "<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\\$value": No schema supplied. Perhaps you meant http://<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\$value?

Используя MacOS,
Office365 2.2.1,
Python 3.8.3,
запросы 2.2.4

bug question

Самый полезный комментарий

В версии 2.2.1 есть ошибка, вам нужно либо использовать последнюю версию git, либо исправить ее вручную в вашей установке здесь https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Обратите внимание, что в вашей версии ctx.service_root_url - это свойство, но должно быть методом ctx.service_root_url()

Все 4 Комментарий

В версии 2.2.1 есть ошибка, вам нужно либо использовать последнюю версию git, либо исправить ее вручную в вашей установке здесь https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Обратите внимание, что в вашей версии ctx.service_root_url - это свойство, но должно быть методом ctx.service_root_url()

Спасибо @efremovd и @etiennecelery за то, что вы их поймали и точно определили, это действительно ошибка, которая встречается в версии 2.2.1 из-за рефакторинга свойства service_root_url в метод.

Как уже упоминалось, последняя версия, доступная на GitHub, решает эту проблему:

pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

В качестве альтернативы файл можно загрузить, как показано ниже:

file_url = '{server-relative-path-to-download}'
with open(download_path, "wb") as local_file:
    file = ctx.web.get_file_by_server_relative_url(file_url).download(local_file).execute_query()

Спасибо!! Отличная работа

Закрытие этого с тех пор было решено, и была выпущена версия 2.2.2 .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги