从Bash导入Python模块

时间:2010-03-08 12:42:11

标签: python linux bash alias

我正在Linux下从命令行(Bash)启动Python脚本。我需要打开Python,导入一个模块,然后解释代码行。然后控制台必须保留在Python中(不要退出)。我该怎么做?

我尝试过像这样的别名:

alias program="cd /home/myname/programs/; python; import module; line_of_code"

但是这只会启动python并且命令不会被执行(没有模块导入,也没有处理代码行。)

这样做的正确方法是什么,只要我需要在脚本执行后保持Python打开(不退出)? 非常感谢!

3 个答案:

答案 0 :(得分:8)

使用子程序而不是别名

callmyprogram(){
  python -i -c "import time;print time.localtime()"
}
callmyprogram

答案 1 :(得分:6)

一种简单的方法是使用“代码”模块:

python -c "import code; code.interact(local=locals())"

当调用code.interact()时,这将使您进入交互式shell。 local的{​​{1}}关键字参数用于预填充创建的解释器的默认命名空间;我们将使用interact,这是一个内置函数,它将本地名称空间作为字典返回。

你的命令看起来像这样:

locals()

将您带入具有正确环境的解释器。

答案 2 :(得分:3)

示例:

python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "