Jupyter가 bashrc 파일에서 env 변수를 볼 수 없다는 문제가 있습니다. 이러한 변수를 jupyter에로드하거나 여기에 custome 변수를 추가하는 방법이 있습니까?
답변
jupyter 노트북에서 env 변수를 설정하려면 %
매직 명령을 사용하십시오. %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
파일 에서 변수를 설정할 수도 있습니다.
내 솔루션은 jupyter 커널을 시작할 때마다 동일한 환경 변수가 필요한 경우, 특히 다른 작업에 대한 여러 환경 변수 집합이있는 경우 유용합니다.
환경 변수를 사용하여 새 ipython 커널을 생성하려면 다음을 수행하십시오.
- https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs 에서 설명서를 읽으십시오.
jupyter kernelspec list
설치된 커널과 파일이 저장된 목록을 보려면 실행 하십시오.- kernel.json이 포함 된 디렉토리 (예 : named
python2
)를 새 디렉토리 (예 :)로 복사합니다python2_myENV
. display_name
새kernel.json
파일 에서 변경 하십시오.env
환경 변수를 정의 하는 사전을 추가하십시오 .
커널 json은 다음과 같을 수 있습니다 (및를 제외 display_name
하고 설치된 kernel.json에서 아무것도 수정하지 않았습니다 env
).
{
"display_name": "Python 2 with environment",
"language": "python",
"argv": [
"/usr/bin/python2",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"env": {"LD_LIBRARY_PATH":""}
}
이 접근 방식의 사용 사례 및 장점
- 내 사용 사례에서는
LD_LIBRARY_PATH
컴파일 된 모듈 (예 : C로 작성된)이로드되는 방식에 영향을주는 변수를 설정하고 싶었습니다 . 이 변수를 사용하여 설정하면%set_env
작동하지 않습니다. - 환경이 다른 여러 파이썬 커널을 가질 수 있습니다.
- 환경을 변경하려면 커널을 전환 / 다시 시작하기 만하면되지만 jupyter 인스턴스를 다시 시작할 필요는 없습니다 (다른 노트북에서 변수를 풀지 않으려는 경우 유용합니다). -그러나-https://github.com/jupyter/notebook/issues/2647 참조
답변
Python을 사용하는 경우 .env
파일에 환경 변수를 정의 하고 python-dotenv를 사용하여 Jupyter 노트북 내에서로드 할 수 있습니다 .
python-dotenv를 설치합니다.
pip install python-dotenv
.env
Jupyter 노트북에 파일을 로드합니다 .
%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 VARIABLE=$VARIABLE jupyter notebook
과 export VARIABLE=value
에서 .bashrc
.
제 경우에는 tensorflow가 노트북에서 성공적으로 가져 오기 위해 내 보낸 변수가 필요합니다.
답변
내가 만난 문제 : 다음 두 명령은 동일합니다. 첫 번째 는 따옴표를 사용할 수 없습니다 . 다소 반 직관적으로 사용할 때 문자열을 인용하면 %env VAR ...
따옴표가 변수 값의 일부로 포함되며 이는 아마도 원하는 것이 아닐 것입니다.
%env MYPATH=C:/Folder Name/file.txt
과
import os
os.environ['MYPATH'] = "C:/Folder Name/file.txt"
답변
systemd를 사용하는 경우 systemd 단위 파일에 추가해야하는 것 같습니다. 우분투 16에서. .profile 및 .bashrc (/ etc / profile 포함)에 넣으면 juypter 노트북에서 ENV Vars를 사용할 수 없습니다.
나는 편집해야했다 :
/lib/systemd/system/jupyer-notebook.service
다음과 같이 단위 파일에서 읽고 싶은 변수를 넣으십시오.
Environment=MYOWN_VAR=theVar
그래야 juypter 노트북에서 읽을 수있었습니다.
