从Bash导入Python模块

Mor*_*ock 10 python linux bash alias

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

我尝试过像这样的别名:

alias program="cd /home/myname/programs/; python; import module; line_of_code"
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*dan 8

一个简单的方法是使用"代码"模块:

python -c "import code; code.interact(local=locals())"
Run Code Online (Sandbox Code Playgroud)

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

你的命令看起来像这样:

python -c "import mymodule, code; code.interact(local=locals())"
Run Code Online (Sandbox Code Playgroud)

这会让你进入一个拥有正确环境的翻译.


gho*_*g74 8

使用子例程而不是别名

callmyprogram(){
  python -i -c "import time;print time.localtime()"
}
callmyprogram
Run Code Online (Sandbox Code Playgroud)