【问题标题】:how to load shell environment variables when Emacs starts py-shell?Emacs启动py-shell时如何加载shell环境变量?
【发布时间】:2014-03-04 14:56:46
【问题描述】:

我在一所大学工作,他们有自己的库和 Python 库路径。每次启动ipython,都需要运行一个shell脚本(如/etc/university/env.sh

问题在于 emacs 无法识别 env.sh 文件。当我做 py-shell 时,emacs 总是在没有任何预设环境变量的情况下调用 Python。

有没有办法让emacs在启动python之前运行/etc/corporate/env.sh

【问题讨论】:

    标签: python bash shell emacs ipython


    【解决方案1】:

    /home/ccfenix/mypython.sh(确保chmod +x,Emacs 自动执行此操作):

    #!/bin/bash
    
    # . /etc/corporate/env.sh
    export SOMEVAR=10
    python "$@"
    

    ~/.emacs:

    (defun my-python ()
      (interactive)
      (ansi-term "/home/ccfenix/mypython.sh"))
    

    并进行测试:M-x mypython:

    import os
    print os.environ["SOMEVAR"]
    # => 10
    

    【讨论】:

    • 感谢 abo-abo!但是,Ipython 怎样才能拾取 my-python?我想如果没有具体说明,ipython.el 将拾取 /usr/bin/ipython ?
    • 只需在 ~/mypython.sh 中用 ipython 替换 python
    • 感谢提供。但是,应该可以用更自然的方式:bugs.launchpad.net/python-mode/+bug/1288239
    【解决方案2】:

    运行 /etc/university/env.sh 后,从这个 shell 启动 Emacs。 那么之前设置的变量是已知的。

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 2013-01-20
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多