【问题标题】:Running Bash scripts in iPython在 iPython 中运行 Bash 脚本
【发布时间】:2017-02-06 05:24:04
【问题描述】:

我写了一个 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 \
            --batch_size 20 \
            --anneal true

我尝试在 iPython 中运行此命令 -

!./run.sh

但是,在 iPython 中,我无法访问 python 脚本 train.py 的变量。有没有办法在 iPython 中运行 bash 脚本,以便我可以访问变量?我不想每次都从 bash 脚本中复制粘贴上述命令。

我目前在 macOS Sierra 上使用 iPython 5.1.0。

【问题讨论】:

  • %%bash开始你的单元格,然后你可以输入shell代码。这叫bash cell magic,如果你想用谷歌搜索的话。
  • @cel:这似乎没有帮助。试过了。
  • 代替@cel 建议的%%bash 魔法,您可以尝试使用%%python 魔法,然后将您的脚本放在单元格中并使用您想要的参数直接运行它跨度>

标签: bash shell ipython


【解决方案1】:

运行您的脚本train.py 的python 进程和您在ipython 命令行中使用的python 进程是两个独立的进程。一个人不知道另一个人的变量是有道理的。可能有一些奇特的方法可以将两者联系起来,但我怀疑从你描述问题的方式来看它不值得工作。

这是一种更简单的访问方式:您可以将脚本中的python train.py 替换为python -i train.py。这样,您将在完成后运行脚本的过程中进入交互模式,并且可以访问在主级别定义的任何内容。您可以在脚本中插入对pdb.set_trace() 的调用以在任意点停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2011-02-02
    • 2020-08-20
    • 2012-08-10
    相关资源
    最近更新 更多