Jupyter가 bashrc 파일에서 env 변수를 볼 수 없다는 문제가 있습니다. 이러한 변수를 jupyter에로드하거나 여기에 custome 변수를 추가하는 방법이 있습니까?
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
os.environ[var] = val
이 백엔드에서 사용된다는 점에 유의하세요 . github.com/ipython/ipython/blob/master/IPython/core/magics/…
kernel.json
파일 에서 변수를 설정할 수도 있습니다.내 솔루션은 jupyter 커널을 시작할 때마다 동일한 환경 변수가 필요한 경우, 특히 다른 작업에 대한 여러 환경 변수 집합이있는 경우 유용합니다.
환경 변수를 사용하여 새 ipython 커널을 생성하려면 다음을 수행하십시오.
jupyter kernelspec list
설치된 커널과 파일이 저장된 목록을 보려면 실행 하십시오.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
작동하지 않습니다.C:\Program Files (x86)\Graphviz2.38\bin\dot.exe
제안 된 기술을 사용하여 기존 시스템 경로에 추가하는 방법을 알려주 시겠습니까? 관리자 계정을 사용하지 않아도 작동합니까? Windows 10을 사용하고 있습니다.
sys.executable
하지 않는 한 덮어 씁니다 PYTHONEXECUTABLE
.
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 MY_VAR=MY_VALUE
이 질문에 대한 정확한 답해야한다
관련 (단기) 솔루션은 예측 가능한 형식으로 단일 파일에 환경 변수를 저장하는 것입니다.이 파일은 터미널을 시작하거나 노트북에서 읽을 수 있습니다. 예를 들어, .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
파일 이 어디에나있을 수 있고 노트북 파일이 포함 된 디렉토리를 기준으로 참조 될 수 있음을 보여주었습니다 . 또한 코드 내의 변수 값을 어디에도 표시하지 않는 장점이 있습니다.