Ich stehe vor dem gleichen Problem. Ich schließlich entscheiden über viele andere Methoden Nach zahlreichen Beiträgen zu lesen, würde Ich mag die folgende Lösung einzuführen (zB Verwendung urllib
, httpimport
Klon von GitHub, verpacken die Module für die Installation, etc). Die Lösung verwendet die Google Drive API ( offizielles Dokument ) für die ordnungsgemäße Autorisierung.
Vorteile:
- Einfach und sicher (kein Code erforderlich, um Ausnahmen von Dateivorgängen und / oder zusätzliche Autorisierung zu behandeln)
- Moduldateien, die durch Anmeldeinformationen des Google-Kontos geschützt sind (niemand anderes kann sie anzeigen / übernehmen / bearbeiten)
- Sie steuern, was hochgeladen / zugegriffen werden soll (Sie können den Zugriff jederzeit Datei für Datei ändern / widerrufen).
- Alles an einem Ort (Sie müssen sich nicht auf einen anderen Datei-Hosting-Service verlassen oder diesen verwalten).
- Die Freiheit, Moduldateien umzubenennen / zu verschieben (nicht pfadbasiert und wird den Notebook-Code Ihres / anderen nicht beschädigen)
Schritte:
- Speichern Sie Ihre .py-Moduldatei in Google Drive - das sollten Sie haben, da Sie Colab bereits verwenden
- Klicken Sie mit der rechten Maustaste darauf, "Get Shareable Link", und kopieren Sie das Teil nach "
id=
" - der von Google Drive zugewiesenen Datei-ID
- Fügen Sie Ihrem Colab-Notizbuch die folgenden Codefragmente hinzu und führen Sie sie aus:
!pip install pydrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
your_module = drive.CreateFile({"id": "your_module_file_id"})
your_module.GetContentFile("your_module_file_name.py")
import your_module_file_name
Randnotiz
Zu guter Letzt sollte ich den ursprünglichen Mitwirkenden dieses Ansatzes anerkennen. Dieser Beitrag enthält möglicherweise einen Tippfehler im Code, da er beim Ausprobieren einen Fehler auslöste. Nach mehr Lesen und Fehlerbehebung funktionierten meine obigen Codefragmente (ab heute unter Colab VM OS: Linux 4.14.79).