コードを.pyファイルにアップロードして、コラボコードセルにインポートする方法はありますか?
私が見つけた他の方法は、ローカルのJupyterノートブックを作成してからColabにアップロードすることですが、それが唯一の方法ですか?
最初に保存してからインポートできます。
from google.colab import files
src = list(files.upload().values())[0]
open('mylib.py','wb').write(src)
import mylib
更新(2018年11月):簡単にアップロードできるようになりました
%load filename.py
を使用してロードします。Korakot Chaovavanichの回答に基づいて、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()
その後、通常の「import」ステートメントを使用して、Colabにローカルファイルをインポートできます。これが役立つことを願っています
他の誰かが、Google colab内のgdriveからファイル/パッケージをインポートする方法を知りたい場合に。次の手順は私のために働いた:
1)GoogleドライブでGoogleドライブをマウント:
from google.colab import drive
drive.mount('/content/gdrive/')
2)sys:を使用して、ディレクトリをpythonパスに追加します
import sys
sys.path.append('/content/gdrive/mypythondirectory')
これで、そのディレクトリからデータをインポートできるはずです!
この方法を試してください:
Plant_seedlingsという名前のパッケージがあります。パッケージはGoogleドライブに保存されます。私がすべきことは、このパッケージを/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
これらの.pyファイルをGoogleドライブにアップロードして、Colabがそれらを使用できるようにすることができます。
!mkdir -p drive
!google-drive-ocamlfuse drive
ルートフォルダー内のすべてのファイルとフォルダーはdrive
にあります。
私は同じ問題に直面しています。多数の投稿を読んだ後、私が最終的に他の多くの方法よりも選んだ次のソリューションを紹介したいと思います(例:urllib
、httpimport
、GitHubからのクローン、インストール用のモジュールのパッケージ化など)。ソリューションでは、適切な認証のためにGoogle Drive API( official doc )を利用します。
id=
」の後の部分をコピーします-Googleドライブによって割り当てられたファイルID!pip install pydrive # Package to use Google Drive API - not installed in Colab VM by default
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth # Other necessary packages
from oauth2client.client import GoogleCredentials
auth.authenticate_user() # Follow Prompt in the authorization process
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
your_module = drive.CreateFile({"id": "your_module_file_id"}) # "your_module_file_id" is the part after "id=" in the shareable link
your_module.GetContentFile("your_module_file_name.py") # Save the .py module file to Colab VM
import your_module_file_name # Ready to import. Don't include".py" part, of course :)
最後になりましたが、このアプローチの 元の貢献者 を称賛すべきです。私がそれを試みたときにエラーを引き起こしたので、その投稿はコードにいくつかのタイプミスを持っているかもしれません。上記のコードスニペットをさらに読み、トラブルシューティングした後、機能しました(今日のColab VM OS:Linux 4.14.79)。
2019年6月です。Pythonパッケージの__init__.py
で、すべての関連ファイルが順番にインポートされていることを確認してください。コードをGitにプッシュするか、 このコード を使用します。
例えば
from .Boxes import *
from .Circles import *
from .Rectangles import *
...
ファイルのインポートに__init__.py
ファイルのパッケージ名を使用しないでください。
googleコラボでは、
! rm -rf SorghumHeadDetection
! git clone https://github.com/user/amazing-repo-name/