개발하자
구글 콜랩 노트북 이름을 파이썬 변수에 할당할 수 있다. 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"
반응형