如何访问 ipython 中的 shell 变量
How to access shell variable in ipython
使用 !
魔法我可以访问 env
类型的环境变量,但不能访问我的终端中定义的环境变量,或者 .bashrc
.
$:/<path>/balter/chip-seq-analysis/chipseq$ echo $hg38
/<path>/genomes/hg38/release-85/Homo_sapiens.GRCh38.dna.primary_assembly.fa
balter@exalab3:/<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]:
如果您的变量未被 export
编辑,则任何子进程都无法访问它们,python 与否。
foo=value
只能被当前进程看到(此处:bash
)
但如果你这样做(在你的 .bashrc
中):
export foo
或设置并导出:
export foo=value
然后变量对子进程可见。这就是你的解决办法。
顺便说一句,获得一个环境。 python 中的变量,真正的 python 方式是:
import os
print(os.getenv("foo"))
使用 !
魔法我可以访问 env
类型的环境变量,但不能访问我的终端中定义的环境变量,或者 .bashrc
.
$:/<path>/balter/chip-seq-analysis/chipseq$ echo $hg38
/<path>/genomes/hg38/release-85/Homo_sapiens.GRCh38.dna.primary_assembly.fa
balter@exalab3:/<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]:
如果您的变量未被 export
编辑,则任何子进程都无法访问它们,python 与否。
foo=value
只能被当前进程看到(此处:bash
)
但如果你这样做(在你的 .bashrc
中):
export foo
或设置并导出:
export foo=value
然后变量对子进程可见。这就是你的解决办法。
顺便说一句,获得一个环境。 python 中的变量,真正的 python 方式是:
import os
print(os.getenv("foo"))