2016-11-21 6 views
0

! 마법을 사용하면 env 유형의 환경 변수에 액세스 할 수 있지만 내 단말기에는 정의 된 것이 아니며 .bashrc에 액세스 할 수 있습니다.ipython에서 쉘 변수에 액세스하는 방법

$:/<path>/balter/chip-seq-analysis/chipseq$ echo $hg38 
/<path>/genomes/hg38/release-85/Homo_sapiens.GRCh38.dna.primary_assembly.fa 
[email protected]:/<path>/balter/chip-seq-analysis/chipseq$ ipython 
Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:42:40) 
Type "copyright", "credits" or "license" for more information. 

IPython 5.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

In [1]: !echo $hg38 


In [2]: !echo $SHELL 
/usr/bin/bash 

In [3]: 
+1

변수가 _exported_되지 않은 경우 pythton에 액세스 할 수있는 하위 프로세스가 없습니다. –

+0

그럼, 내'.bashrc' 파일에서 export와 함께'export hg38 = ....'가 필요합니까? 나는 그것을 시도 할 것이다. – abalter

+1

예, 필요합니다! –

답변

1

변수가 export이 아닌 경우 아무 하위 프로세스도 python에 액세스 할 수 없습니다.

foo=value 

은 (여기 : bash) 현재 프로세스에 의해 볼

하지만 당신은 (당신의 .bashrc에서) 할 경우 : & 수출

export foo 

또는 설정 :

export foo=value 

변수는 하위 프로세스에서 볼 수있게됩니다. 그게 당신의 수정입니다.

현재, env. 변수는 파이썬에서 실제 파이썬 방법은 다음과 같습니다.

import os 
print(os.getenv("foo"))