Office365-rest-python-client: Fordert MissingSchema-Fehler beim Herunterladen der Datei an

Erstellt am 2. Okt. 2020  ·  4Kommentare  ·  Quelle: vgrem/Office365-REST-Python-Client

Hi!

Ich habe Probleme beim Herunterladen einer Datei aus SharePoint mit der neuesten 2.2.1-Version von Office365. Wenn ich versuche, eine Datei herunterzuladen, wird der Fehler "MissingSchema" vom Anforderungsmodul angezeigt. Ich weiß nicht, was passiert ist, wenn ich zu Version 2.1.5 zurückkehre, läuft der Code einwandfrei. Vielen Dank und ich schätze die harte Arbeit in diesem Modul; super nützlich!

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)

Fehler:
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?

Unter MacOS,
Office365 2.2.1,
Python 3.8.3,
Anfragen 2.2.4

bug question

Hilfreichster Kommentar

Es gibt einen Fehler in Version 2.2.1. Sie müssen entweder die neueste Version von git verwenden oder ihn manuell in Ihrer Installation hier beheben https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Beachten Sie, dass in Ihrer Version ctx.service_root_url eine Eigenschaft ist, aber eine Methode sein sollte ctx.service_root_url()

Alle 4 Kommentare

Es gibt einen Fehler in Version 2.2.1. Sie müssen entweder die neueste Version von git verwenden oder ihn manuell in Ihrer Installation hier beheben https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Beachten Sie, dass in Ihrer Version ctx.service_root_url eine Eigenschaft ist, aber eine Methode sein sollte ctx.service_root_url()

Vielen Dank an @efremovd und @etiennecelery für das Auffangen und Lokalisieren. Tatsächlich handelt es sich um einen Fehler, der in Version 2.2.1 aufgrund der Umgestaltung der Eigenschaft service_root_url in die Methode aufgetreten ist.

Wie bereits erwähnt, behebt die _neueste_ Version von GitHub dieses Problem:

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

Alternativ kann die Datei wie unten gezeigt heruntergeladen werden:

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()

Dankeschön!! Gute Arbeit

Das Schließen dieser seither wurde behoben und die 2.2.2 Version wurde veröffentlicht.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen