Colabがディレクトリでどのように機能するか理解していないので、ノートブックを作成し、colabを/ Google Drive/Colab Notebooksに入れました。
次に、必要な関数がたくさんあるファイル(data.py)をインポートする必要があります。直観は、同じディレクトリにファイルを置き、それをインポートするように私に言います:
データをインポートする
しかし、どうやらそうではありません...
また、ディレクトリをパスのセットに追加しようとしましたが、ディレクトリを誤って指定しています。
誰でもこれを助けることができますか?
前もって感謝します!
現在、Googleは公式にGdriveへのアクセスと操作を簡単にサポートしています。
以下のコードを使用して、ドライブをColabにマウントできます。
from google.colab import drive
drive.mount('/gdrive')
%cd /gdrive/My\ Drive/{location you want to move}
ColabノートブックはGoogleドライブに保存されます。ただし、別の仮想マシンで実行されます。そのため、data.pyもそこにコピーする必要があります。これを実行して、Colabを介してdata.pyをアップロードします。
from google.colab import files
files.upload()
# choose the file on your computer to upload it then
import data
だから、これが私が最終的にこれを解決した方法です。ただし、私の場合は、常に変更されているいくつかのファイルと独自のモジュールを使用する必要がありました。
これを実現するための最良の解決策は、Fuseラッパーを使用して、colabをGoogleアカウントに「リンク」することでした。私はこの特定のツールを使用しました:
https://github.com/astrada/google-drive-ocamlfuse
そこにあなたの環境をセットアップする方法の例がありますが、ここに私がそれをした方法があります:
# Install a Drive Fuse wrapper.
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse Fuse
# Generate auth tokens for Colab
from google.colab import auth
auth.authenticate_user()
# Generate creds for the Drive Fuse library.
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
この時点でラッパーがインストールされ、上記のコードにより、Googleドライブアカウントへのアクセスを許可するためのリンクがいくつか生成されます。
Colabファイルシステムにフォルダを作成する必要があります(これは私の知る限り永続的ではないことに注意してください...)、そこにドライブをマウントします:
# Create a directory and mount Google Drive using that directory.
!mkdir -p drive
!google-drive-ocamlfuse drive
print ('Files in Drive:')
!ls drive/
!lsコマンドは、ディレクトリの内容を出力するので、動作を確認できます。それだけです。これで、必要なファイルがすべて揃ったので、これ以上複雑にすることなくそれらに変更を加えることができます。インポートと変数を更新するには、カーネルを再スターティングする必要がある場合があることに注意してください。
これが誰かのために働くことを願っています!