142 votes

Importation de fichiers .py dans Google Colab

Existe-t-il un moyen de télécharger mon code dans des fichiers .py et de les importer dans les cellules de code de colab ?

L'autre moyen que j'ai trouvé est de créer un notebook Jupyter local puis de le télécharger sur Colab, est-ce le seul moyen ?

156voto

Korakot Chaovavanich Points 3346

Vous pouvez d'abord l'enregistrer, puis l'importer.

from google.colab import files
src = list(files.upload().values())[0]
open('mylib.py','wb').write(src)
import mylib

Mise à jour (nov 2018) : Vous pouvez désormais télécharger facilement en

  • Cliquez sur [>] pour ouvrir le volet de gauche.
  • choisir l'onglet fichier
  • cliquez sur [upload] et choisissez votre [mylib.py].
  • import mylib

Mise à jour (octobre 2019) : Si vous ne voulez pas télécharger à chaque fois, vous pouvez le stocker dans S3 et le monter sur Colab, comme indiqué dans. cette phrase

Mise à jour (avril 2020) : Maintenant que vous pouvez monter votre Google Drive automatiquement. Il est plus facile de le copier depuis Drive que de le télécharger.

  • Magasin mylib.py dans votre lecteur
  • Ouvrir un nouveau Colab
  • Ouvrez le volet latéral (gauche), sélectionnez Files voir
  • Cliquez sur Mount Drive puis Connect to Google Drive
  • Copiez-le en !cp drive/MyDrive/mylib.py .
  • import mylib

2 votes

@rsam Essayez alors la deuxième méthode. Je l'ai essayé et cela a fonctionné pour moi.

0 votes

Files.upload() ne fonctionne pas actuellement dans Firefox. L'alternative est de le télécharger dans Google Drive, puis depuis un ordinateur portable d'utiliser PyDrive pour le télécharger.

3 votes

Si vous utilisez la méthode de l'onglet fichier, vous devez répéter le téléchargement à chaque exécution.

110voto

a3VonG Points 51

Au cas où quelqu'un d'autre serait intéressé de savoir comment importer des fichiers/packages depuis gdrive dans un google colab. La procédure suivante a fonctionné pour moi :

1) Montez votre google drive dans google colab :

from google.colab import drive
drive.mount('/content/gdrive/')

2) Ajoutez le répertoire à votre chemin python en utilisant sys :

import sys
sys.path.append('/content/gdrive/mypythondirectory')

Maintenant, vous devriez être en mesure d'importer des choses à partir de ce répertoire !

1 votes

Bonjour. Merci. Mais je cherche à importer des fichiers python qui dépendent également d'autres fichiers. Est-ce que je peux faire cela s'il vous plaît ?

0 votes

From google.colab import drive import sys drive.mount('/content/gdrive') colab_notebooks_path = "gdrive/MyDrive/Colab Notebooks/" sys.path.append(colab_notebooks_path)

19voto

Aditya Mishra Points 315
  1. Vous pouvez télécharger des fichiers locaux vers google colab en utilisant télécharger() fonction dans google.colab.files
  2. Si vous avez des fichiers sur github, alors clonez le repo en utilisant !git clone https://github.com/username/repo_name.git . Ensuite, tout comme dans Jupyter notebook, chargez-le en utilisant la fonction magique %load %load filename.py .

1 votes

La deuxième méthode a fonctionné pour moi, j'ai juste dû ajouter le nom du repo : %load repo_name/filename.py

1 votes

@xyzjayne avez-vous essayé de l'importer ? Je peux le charger sans problème, mais je ne peux pas l'utiliser comme module.

14voto

Flint Joe Points 71

Sur la base de la réponse de Korakot Chaovavanich, j'ai créé la fonction ci-dessous pour télécharger tous les fichiers nécessaires dans une instance Colab.

from google.colab import files
def getLocalFiles():
    _files = files.upload()
    if len(_files) >0:
       for k,v in _files.items():
         open(k,'wb').write(v)
getLocalFiles()

Vous pouvez ensuite utiliser l'instruction "import" habituelle pour importer vos fichiers locaux dans Colab. J'espère que cela vous aidera

0 votes

Merci, je suis un novice et c'est la seule réponse que j'ai compris comment mettre en œuvre et qui fonctionne pour moi.

3voto

Feng Points 329

Essayez de cette façon :

J'ai un paquet nommé plant_seedlings. Ce paquet est stocké dans google drive. Ce que je dois faire est de copier ce paquet dans /usr/local/lib/python3.6/dist-packages/.

!cp /content/drive/ai/plant_seedlings.tar.gz /usr/local/lib/python3.6/dist-packages/

!cd /usr/local/lib/python3.6/dist-packages/ && tar -xzf plant_seedlings.tar.gz

!cd /content

!python -m plant_seedlings

0 votes

Ça ne marche pas pour moi. "/content" n'a pas de sous-répertoire "drive".

0 votes

Je ne suis pas sûr de cette réponse mais pour votre problème, vous devez d'abord cliquer sur Mount Drive bouton de google drive. Ensuite, le dossier du lecteur apparaîtra sous le dossier de contenu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X