it-swarm-ko.tech

Google Colab에서 .py 파일 가져 오기

.py 파일로 코드를 업로드하고이를 colab 코드 셀로 가져 오는 방법이 있습니까?

내가 찾은 다른 방법은 로컬 Jupyter 노트북을 만든 다음 Colab에 업로드하는 것입니다. 유일한 방법입니까?

33
Reham M Samir

먼저 저장 한 다음 가져올 수 있습니다.

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

업데이트 (2018 년 11 월) : 이제 쉽게 업로드 할 수 있습니다.

  • 왼쪽 창을 열려면 [>]를 클릭하십시오.
  • 파일 탭을 선택하십시오
  • [업로드]를 클릭하고 [mylib.py]를 선택하십시오
  • mylib 가져 오기
38
  1. google.colab.files upload () 함수를 사용하여 로컬 파일을 Google Colab에 업로드 할 수 있습니다
  2. Github에 파일이 있으면! git clone https://github.com/username/repo_name.git 을 사용하여 repo를 복제하십시오. 그런 다음 jupyter 노트북에서와 같이 마술 함수 % load %load filename.py를 사용하여로드하십시오.
8
Aditya Mishra

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에서 로컬 파일을 가져올 수 있습니다. 이게 도움이 되길 바란다

7
Flint Joe

다른 사람이 Google Colab 내부의 gdrive에서 파일/패키지를 가져 오는 방법을 알고 싶은 경우. 다음 절차가 저에게 효과적이었습니다.

1) Google colab에 Google 드라이브를 마운트합니다 :

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

2) sys :를 사용하여 python 경로에 디렉토리를 추가하십시오.

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

이제 해당 디렉토리에서 물건을 가져올 수 있습니다!

1
a3VonG

이 방법으로 시도하십시오 :

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
1
Feng

해당 .py 파일을 Google 드라이브에 업로드하고 Colab이 해당 파일을 사용할 수 있도록 허용 할 수 있습니다.

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

루트 폴더에있는 모든 파일과 폴더는 drive에 있습니다.

1
Huyen

나는 같은 문제에 직면한다. 수많은 게시물을 읽은 후 마지막으로 다른 많은 방법 (예 : urllib, httpimport, GitHub의 복제, 설치를 위해 모듈 패키지 등)을 사용하여 선택한 다음 솔루션을 소개하고 싶습니다. 이 솔루션은 적절한 승인을 위해 Google Drive API ( official doc )를 사용합니다.

장점 :

  1. 쉽고 안전합니다 (파일 작업 예외 및/또는 추가 인증을 처리하기 위해 코드가 필요 없음)
  2. Google 계정 자격 증명으로 보호되는 모듈 파일 (아무도 보거나 가져 오기/편집 할 수 없음)
  3. 업로드/액세스 대상 제어 (파일별로 액세스를 언제든지 변경/취소 할 수 있음)
  4. 한 곳의 모든 것 (다른 파일 호스팅 서비스에 의존하거나 관리 할 필요가 없음)
  5. 모듈 파일 이름 변경/이동 자유 (경로 기반이 아니며 다른 사람의 노트북 코드를 손상시키지 않음)

단계 :

  1. .py 모듈 파일을 Google 드라이브에 저장합니다. Colab을 이미 사용하고 있으므로
  2. "공유 가능 링크 가져 오기"를 마우스 오른쪽 버튼으로 클릭하고 "id="다음 부분을 복사합니다. Google 드라이브에서 지정한 파일 ID
  3. Colab 노트북에 다음 코드 스 니펫을 추가하고 실행하십시오.
!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 :)

사이드 노트

마지막으로,이 접근법의 original 컨트 리뷰 터 를 인정해야합니다. 해당 게시물은 코드를 시도했을 때 오류가 발생하여 코드에 오타가있을 수 있습니다. 더 많은 코드를 읽고 문제를 해결 한 후 위의 코드 조각이 작동했습니다 (오늘 Colab VM OS : Linux 4.14.79).

1
Frank Wang

2019 년 6 월입니다. Python 패키지의 __init__.py에서 모든 관련 파일을 순서대로 가져와야합니다. 코드를 힘내로 밀거나 이 코드 를 사용하십시오.

예를 들어

from .Boxes import *
from .Circles import *
from .Rectangles import *
...

파일을 가져 오기 위해 __init__.py 파일에서 패키지 이름을 사용하지 마십시오.

google colab에서

! rm -rf SorghumHeadDetection
! git clone https://github.com/user/amazing-repo-name/
0
Netro