programing

주피터 노트북에서 env 변수 설정 방법

i4 2023. 4. 26. 22:56
반응형

주피터 노트북에서 env 변수 설정 방법

주피터가 bashrc 파일에서 env 변수를 볼 수 없다는 문제가 있습니다.이러한 변수를 주피터에 로드하거나 사용자 지정 변수를 추가할 수 있는 방법이 있습니까?

노트북에서 ▁a다▁in▁to를 사용하면 됩니다.%명령을 합니다.%env또는%set_env를 들어, , , .%env MY_VAR=MY_VALUE또는%env MY_VAR MY_VALUE(사用)%env자체적으로 현재 환경 변수를 출력합니다.)

참조: http://ipython.readthedocs.io/en/stable/interactive/magics.html

는 변를설수있다습니도할에서 .kernel.json파일 이름:

주피터 커널을 시작할 때마다 동일한 환경 변수가 필요한 경우, 특히 다른 작업을 위한 환경 변수 집합이 여러 개 있는 경우 유용합니다.

환경 변수를 사용하여 새 ipython 커널을 생성하려면 다음을 수행합니다.

  • https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs 에서 설명서를 읽습니다.
  • 려달을 합니다.jupyter kernelspec list커널이 설치된 목록과 파일이 저장된 위치를 확인합니다.
  • named kernel.json(예: named)이 합니다.python2새 디렉터리로 이동합니다(예:python2_myENV).
  • 변할내용을 합니다.display_name 근최에.kernel.jsonjava.
  • 추가env환경 변수를 정의하는 사전입니다.

수 된 kernel을 제외하고 설치된 kernel.json에서 한 것은 ).display_name그리고.env):

{
 "display_name": "Python 2 with environment",
 "language": "python",
 "argv": [
  "/usr/bin/python2",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {"LD_LIBRARY_PATH":""}
}

이 접근 방식의 사용 사례 및 이점

  • use-case에서는 제 사 사 례 변 수 를 설 정 하 싶 고 습 었 니 다 저 는 서 에 용 - ▁variable ▁the 습 니 ▁in 싶 었 다 ▁to , ▁set ▁i 고 ▁wanted제 저LD_LIBRARY_PATH컴파일된 모듈(예: C로 작성)이 로드되는 방식에 영향을 미칩니다.를 사용하여 이 %set_env작동하지 않았습니다.
  • 여러 개의 파이썬 커널을 서로 다른 환경에서 사용할 수 있습니다.
  • 환경을 변경하려면 커널을 전환/재시작하기만 하면 되지만 주피터 인스턴스를 다시 시작할 필요는 없습니다(다른 노트북의 변수를 풀고 싶지 않은 경우 유용).단, https://github.com/jupyter/notebook/issues/2647 을 참조하십시오.

Python을를 Python으로 할 수 ..envpython-dotenv를 사용하여 주피터 노트북 내에서 파일로 로드합니다.

python-dotenv 설치:

pip install python-dotenv

합니다..env주피터 노트북에 파일 저장:

%load_ext dotenv
%dotenv

다음과 같이 코드에서 환경 변수를 설정할 수 있습니다.

import sys,os,os.path
sys.path.append(os.path.expanduser('~/code/eol_hsrl_python'))
os.environ['HSRL_INSTRUMENT']='gvhsrl'
os.environ['HSRL_CONFIG']=os.path.expanduser('~/hsrl_config')

인 해결책을 의 이은물임인라면, 인해얻기위해을책결, 신아변당것신의으다있필것으로 내보낼 가 있을 입니다.~.profile자세한 내용은 여기에서 확인할 수 있습니다.

우연히 만난 갓챠:다음 두 명령은 동일합니다. 번째는 따옴표를 사용할 수 없습니다.다소 직관적이지 않고, 사용 시 문자열을 인용합니다.%env VAR ...따옴표는 변수 값의 일부로 포함되지만 원하는 값이 아닐 수 있습니다.

%env MYPATH=C:/Folder Name/file.txt

그리고.

import os
os.environ['MYPATH'] = "C:/Folder Name/file.txt"

노트북을 시작하기 전에 변수 집합이 필요한 경우 저에게 효과적인 유일한 솔루션은env VARIABLE=$VARIABLE jupyter notebook와 함께export VARIABLE=value.bashrc.

내 경우 텐서플로는 노트북으로 가져오기 위해 내보낸 변수가 필요합니다.

관련된 (단기) 솔루션은 터미널을 시작할 때 소스를 제공하거나 노트북에 읽을 수 있는 예측 가능한 형식의 단일 파일에 환경 변수를 저장하는 것입니다.예를 들어, 저는 파일을 가지고 있습니다..env가 내경환변정형포함로다니합식으 .VARIABLE_NAME=VARIABLE_VALUE(빈 줄 또는 추가 공백 없음).의 소스는 은다수있다니습소스에 ..bashrc또는.bash_profile때이 있고 은 다음과 같은으로 읽을 수 .

import os
env_vars = !cat ../script/.env
for var in env_vars:
    key, value = var.split('=')
    os.environ[key] = value

상대적인 경로를 이용해서 이걸 보여줬어요.env파일은 어디서나 사용할 수 있으며 노트북 파일이 들어 있는 디렉터리를 기준으로 참조할 수 있습니다.이렇게 하면 코드 내의 변수 값이 아무 곳에도 표시되지 않는다는 장점도 있습니다.

허브에 해야 할 수도 .jupyterhub_config.py하여 )Hub 프로세스 환경에서 Notebook 환경으로 이월이 가능한 환경변수 목록

c.Spawner.env_keep = [VAR1, VAR2, ...]

(https://jupyterhub.readthedocs.io/en/stable/api/spawner.html#jupyterhub.spawner.Spawner.env_keep)

참고 항목:

당신이 systemd를 사용하고 있다면 systemd 유닛 파일에 추가해야 하는 것으로 보입니다.이것은 Ubuntu 16에 있습니다..profile 및 .bashrc(또는 /etc/profile)에 이러한 파일을 저장하면 Juypter 노트북에서 ENV 변수를 사용할 수 없습니다.

편집해야 했습니다.

/lib/systemd/system/jupyer-notebook.service

그리고 다음과 같이 단위 파일에 읽고 싶은 변수를 넣었습니다.

Environment=MYOWN_VAR=theVar

그리고 그때서야 나는 그것을 쥬피터 노트북 안에서 읽을 수 있었습니다.

도커로 주피터 노트북을 실행할 수 있으며, 종속성 누수를 관리할 필요가 없습니다.

docker run -p 8888:8888 -v /home/mee/myfolder:/home/jovyan --name notebook1 jupyter/notebook
docker exec -it notebook1 /bin/bash

그럼 주피터에게 열린 공책에 대해 물어봐 주세요.jupyter notebook list
http://.0:88888/?filename=012456788997a6eb11e45fff
URL을 복사하여 붙여넣을 수 있습니다. 변경한 경우 포트를 확인하십시오.

노트북을 만들고 다음을 노트북에 붙여넣습니다.

!pip install python-dotenv
import dotenv
%load_ext dotenv
%dotenv

언급URL : https://stackoverflow.com/questions/37890898/how-to-set-env-variable-in-jupyter-notebook

반응형