개발하자

구글 콜랩 노트북 이름을 파이썬 변수에 할당할 수 있다. Jupyter에서는 javascript를 사용할 수 있지만 collab에서는 작동하지 않습니다

Cuire 2023. 3. 11. 17:02
반응형

구글 콜랩 노트북 이름을 파이썬 변수에 할당할 수 있다. Jupyter에서는 javascript를 사용할 수 있지만 collab에서는 작동하지 않습니다

구글 콜랩 노트북 이름을 파이썬 변수에 할당할 수 있다. Jupyter에서는 javascript를 사용할 수 있지만 collab에서는 사용할 수 없습니다. html에 액세스하기 위해 %javascript를 사용하는 예를 찾았지만 colab 노트북에서는 작동하지 않는 것 같습니다. 그래서 나는 노트북을 내 구글 드라이브에 복사하고 이름을 바꾼 다음 새 이름을 파이썬 변수에 할당하고 싶다.




여기 노트북 이름을 알 수 있는 코드가 있습니다.

from requests import get
filename = get('http://172.28.0.2:9000/api/sessions').json()[0]['name']



2023년 1월 현재, 코라콧의 솔루션은 "172.28.0.2"에서 "172.28.0.12"로 새로운 URL로 업데이트되어야 한다. 작업 코드는 다음과 같습니다:

import requests
filename = requests.get("http://172.28.0.12:9000/api/sessions").json()[0]["name"]
# Output will be of the form "xyz.ipynb"

대안: IP 변경에 강력한 솔루션

colab_ip = %system hostname -I   # uses colab magic to get list from bash
colab_ip = colab_ip[0].strip()   # returns "172.28.0.12"
colab_port = 9000                # could use 6000, 8080, or 9000

import requests
filename = requests.get(f"http://{colab_ip}:{colab_port}/api/sessions").json()[0]["name"]
# Output will be of the form "xyz.ipynb"

설명.

향후 URL이 다시 변경될 경우 다음 게시물의 코드를 사용하여 최신 IP 주소를 찾을 수 있습니다. 관련 코드는 다음과 같습니다:

# Gives IP address
!hostname -I
print()  # empty line
# Gives IP addresses with port numbers
!sudo lsof -i -P -n | grep LISTEN

현재 출력은 다음과 같습니다:

172.28.0.12 

node        7 root   21u  IPv6  19966      0t0  TCP *:8080 (LISTEN)
kernel_ma  35 root    7u  IPv4  19643      0t0  TCP 172.28.0.12:6000 (LISTEN)
colab-fil  65 root    3u  IPv4  19927      0t0  TCP *:3453 (LISTEN)
colab-fil  65 root    4u  IPv6  19929      0t0  TCP *:3453 (LISTEN)
jupyter-n  91 root    4u  IPv4  20144      0t0  TCP 172.28.0.12:9000 (LISTEN)
python3   138 root   23u  IPv4  20719      0t0  TCP 127.0.0.1:45899 (LISTEN)
python3   174 root    3u  IPv4  19440      0t0  TCP 127.0.0.1:18901 (LISTEN)
python3   174 root    5u  IPv4  20935      0t0  TCP 127.0.0.1:40271 (LISTEN)

흥미롭게도 작동하는 포트는 여러 개입니다:

  • 172.28.0.12:6000
  • 172.28.0.12:8080
  • 172.28.0.12:9000

콜랩 마법을 사용하여 IP 변경에 강력한 솔루션을 생성할 수 있습니다. 참조:

colab_ip = %system hostname -I   # uses colab magic to get list from bash
colab_ip = colab_ip[0].strip()   # returns "172.28.0.12"
colab_port = 9000                # could use 6000, 8080, or 9000

import requests
filename = requests.get(f"http://{colab_ip}:{colab_port}/api/sessions").json()[0]["name"]
# Output will be of the form "xyz.ipynb"

반응형