在iPython中运行Bash脚本
我编写了一个bash脚本,在iPython中运行Bash脚本,bash,shell,ipython,Bash,Shell,Ipython,我编写了一个bash脚本,run.sh,它有一个带有多个选项的python命令- python train.py --lr 0.01 \ --momentum 0.5 \ --num_hidden 3 \ --sizes 100,100,100 \ --activation sigmoid \ --loss sq \ --opt adam \
run.sh
,它有一个带有多个选项的python命令-
python train.py --lr 0.01 \
--momentum 0.5 \
--num_hidden 3 \
--sizes 100,100,100 \
--activation sigmoid \
--loss sq \
--opt adam \
--batch_size 20 \
--anneal true
我尝试在iPython中运行此命令-
!./run.sh
但是,在iPython中,我无法访问python脚本train.py
的变量。有没有办法在iPython中运行bash脚本以便访问变量?我不想每次都从bash脚本复制粘贴上面的命令
我目前正在macOS Sierra上使用iPython 5.1.0。运行脚本的python进程
train.py
和在iPython命令行上使用的python进程是两个独立的进程。一方不知道另一方的变量是有道理的。也许有一种奇特的方式可以将两者联系起来,但从你描述问题的方式来看,我怀疑这样做不值得
这里有一种更简单的访问方法:您可以将脚本中的
python-train.py
替换为python-i-train.py
。这样,在脚本完成后运行的过程中,您将进入交互模式,并且在主级别定义的任何内容都可以访问。您可以在脚本中插入对pdb.set_trace()的调用,使其在任意点停止。使用%%bash启动单元格,然后您可以输入shell代码。如果你想用谷歌搜索它,这叫做bash cell magic
。@cel:这似乎没用。您已经尝试过了。您可以尝试使用@cel建议的%%bash
魔术,然后将脚本放入单元格中,并直接使用所需参数运行它