从Bash导入Python模块
我在Linux的命令行(Bash)中启动一个Python脚本。我需要打开Python,导入一个模块,然后执行一些代码。接下来,控制台必须保持在Python环境中(不能退出)。我该怎么做呢?
我试过用这样的别名:
alias program="cd /home/myname/programs/; python; import module; line_of_code"
但是这只会启动Python,命令并没有被执行(没有导入模块,也没有处理代码行)。
那么,正确的做法是什么呢?我需要在脚本执行后保持Python环境打开(不能退出)?非常感谢!
3 个回答
3
示例:
python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "
9
使用子程序而不是别名
callmyprogram(){
python -i -c "import time;print time.localtime()"
}
callmyprogram
20
一个简单的方法是使用“code”模块:
python -c "import code; code.interact(local=locals())"
当你调用 code.interact() 时,它会让你进入一个交互式的命令行界面。local
这个参数是用来提前设置解释器的默认命名空间的;我们会用 locals()
,这是一个内置函数,可以返回当前的命名空间,像一个字典一样。
你的命令看起来会像这样:
python -c "import mymodule, code; code.interact(local=locals())"
这样你就可以进入一个拥有正确环境的解释器了。