web-dev-qa-db-ja.com

自分のモジュールをグーグルコラボラトリーノートブックにインポートすることは可能ですか?

pythonでデータサイエンスを教えるためにGoogleの共同作業を使用しています。ノートブックに学生向けの特定のレッスンのみを残すために、代わりにコーディングしたいくつかの基本的なメソッドをインポートして提供したいと思います。気を散らすのを防ぐために、これらの方法が事前に入力された大きなノートブック。

これらのメソッドをpipで公開せずにインポートするにはどうすればよいですか? google-colaborary pipはgithubからインストールできますか?

私たちにとって最良のオプションは、ドライブにコードを入れ、csvファイルの場合と同じようにモジュールをコラボスペースにアップロードし、標準のインポートを使用できるようにすることです。それは可能ですか?

8

これらのメソッドをpipで公開せずにインポートするにはどうすればよいですか? google-colaborary pipはgithubからインストールできますか?

はい、コラボでbashコマンドを実行することで(コマンドに!を追加することで)、githubからpipインストールを実行できます。例えば:

!pip install git+<github_link>

私たちにとって最良のオプションは、ドライブにコードを入れ、csvファイルの場合と同じようにモジュールをコラボスペースにアップロードし、標準のインポートを使用できるようにすることです。それは可能ですか?

これは少し注意が必要ですが、[google-drive-ocamlfuse][1]を使用してGoogleドライブをGoogleCollabインスタンスにマウントすることで実行できます。

Ocamlfuseをインストールし、以下を使用してGoogleアカウントの権限を取得する必要があります。

!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
from google.colab import auth
auth.authenticate_user()
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ドライブをマウントします。

!mkdir -p drive
!google-drive-ocamlfuse drive

その後、以下を使用してマウントが成功したかどうかを確認できます。

!ls drive

これにより、Googleドライブ内のすべてのファイルが表示されます。

9
Ankur Ankan

私はこれを正確に行う汚いトリックを持っています。すべてのコードを1つのパッケージにまとめることで、

!wget mysite/mypackage.py
from mypackage import *

同様に、mypackageに依存関係がある場合は、zipファイルを取得して!unzipすることができます

3
Sergio Lucero