Có cách nào để tải lên mã của tôi trong các tệp .py và nhập chúng vào các ô mã colab không?
Một cách khác mà tôi tìm thấy là tạo một sổ ghi chép Jupyter cục bộ sau đó tải nó lên Colab, đó có phải là cách duy nhất?
Có cách nào để tải lên mã của tôi trong các tệp .py và nhập chúng vào các ô mã colab không?
Một cách khác mà tôi tìm thấy là tạo một sổ ghi chép Jupyter cục bộ sau đó tải nó lên Colab, đó có phải là cách duy nhất?
Câu trả lời:
Bạn có thể lưu nó trước, sau đó nhập nó.
from google.colab import files
src = list(files.upload().values())[0]
open('mylib.py','wb').write(src)
import mylib
Cập nhật (nov 2018): Bây giờ bạn có thể tải lên dễ dàng bằng cách
Cập nhật (tháng 8 năm 2019): Nếu bạn không muốn tải lên mọi lúc, bạn có thể lưu trữ nó trong S3 và gắn nó vào Colab, như được hiển thị trong ý chính này
Cập nhật (Apr 2020): Giờ đây, bạn có thể tự động gắn kết Google Drive của mình. Sẽ dễ dàng hơn nếu chỉ sao chép nó từ Drive hơn là tải nó lên.
mylib.py
trong Drive của bạnFiles
chế độ xemMount Drive
sau đóConnect to Google Drive
!cp drive/MyDrive/mylib.py .
import mylib
Trong trường hợp bất kỳ ai khác muốn biết cách nhập tệp / gói từ gdrive vào bên trong cột google. Quy trình sau đây phù hợp với tôi:
1) Gắn google drive của bạn vào google colab:
from google.colab import drive
drive.mount('/content/gdrive/')
2) Nối thư mục vào đường dẫn python của bạn bằng sys:
import sys
sys.path.append('/content/gdrive/mypythondirectory')
Bây giờ bạn sẽ có thể nhập nội dung từ thư mục đó!
%load filename.py
.%load repo_name/filename.py
Dựa trên câu trả lời của Korakot Chaovavanich, tôi đã tạo hàm bên dưới để tải xuống tất cả các tệp cần thiết trong một phiên bản 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()
Sau đó, bạn có thể sử dụng câu lệnh 'import' thông thường để nhập các tệp cục bộ của mình vào Colab. Tôi hi vọng cái này giúp được
Chúng tôi có thể làm như vậy.
import sys
import os
py_file_location = "/content/drive/My Drive"
sys.path.append(os.path.abspath(py_file_location))
Bây giờ bạn có thể nhập nó dưới dạng mô-đun trong sổ ghi chép cho vị trí đó.
import whatever
Tôi phải đối mặt với cùng một vấn đề. Sau khi đọc rất nhiều bài viết, tôi xin giới thiệu các giải pháp sau đây cuối cùng tôi đã chọn qua nhiều phương pháp khác (ví dụ sử dụng urllib
, httpimport
, clone từ GitHub, đóng gói module để cài đặt, vv). Giải pháp sử dụng API Google Drive ( tài liệu chính thức ) để cấp quyền thích hợp.
id=
" - id tệp được Google Drive chỉ định!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 :)
Cuối cùng nhưng không kém phần quan trọng, tôi nên ghi công người đóng góp ban đầu của phương pháp này. Bài đăng đó có thể có một số lỗi đánh máy trong mã vì nó gây ra lỗi khi tôi thử nó. Sau khi đọc thêm và khắc phục sự cố, đoạn mã của tôi ở trên đã hoạt động (tính đến hôm nay trên Colab VM OS: Linux 4.14.79).
Hãy thử cách này:
Tôi có một gói tên là plant_seedlings. Gói được lưu trữ trong google drive. Những gì tôi nên làm là sao chép gói này trong /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
Mount Drive
nút của google drive. Sau đó, thư mục ổ đĩa sẽ xuất hiện dưới thư mục nội dung.
Bạn có thể tải các tệp .py đó lên Google drive và cho phép Colab sử dụng chúng:
!mkdir -p drive
!google-drive-ocamlfuse drive
Tất cả các tệp và thư mục của bạn trong thư mục gốc sẽ ở trong drive
.
Đó là tháng 6 năm 2019. Đảm bảo rằng trong gói Python, __init__.py
tất cả các tệp liên quan được nhập theo thứ tự. Đẩy mã vào Git hoặc sử dụng mã này .
ví dụ,
from .Boxes import *
from .Circles import *
from .Rectangles import *
...
Không sử dụng Tên gói trong __init__.py
tệp để nhập tệp.
trong chuyên mục Google,
! rm -rf SorghumHeadDetection
! git clone https://github.com/user/amazing-repo-name/
Một cách dễ dàng là