Shell脚本:从Shell脚本中执行python程序

2024-04-25 04:47:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过用谷歌搜索答案,但没有成功。

我需要使用我的works超级计算机服务器,但要运行python脚本,它必须通过shell脚本执行。

例如,我希望job.sh执行python_script.py

如何才能做到这一点?


Tags: 答案py服务器脚本shscriptjobshell
3条回答

方法1-创建shell脚本:

假设您有一个python文件hello.py 创建一个名为job.sh的文件,该文件包含

#!/bin/bash
python hello.py

将其标记为可执行

$ chmod +x job.sh

然后运行它

$ ./job.sh

方法2(更好)-让python本身从shell运行:

修改脚本hello.py并将其添加为第一行

#!/usr/bin/env python

将其标记为可执行

$ chmod +x hello.py

然后运行它

$ ./hello.py

只需确保python可执行文件在PATH环境变量中,然后添加脚本

python path/to/the/python_script.py

详细信息:

  • 在job.sh文件中,把这个
#!/bin/sh
python python_script.py
  • 执行此命令以使脚本可为您运行:chmod u+x job.sh
  • 运行它:./job.sh

Imho,写作

python /path/to/script.py

是完全错误的,尤其是在现在。哪条Python?Python2.6?2.7分?3.0分?3.1个?大多数情况下,您需要在python文件的shebang标记中指定python版本。我鼓励使用

#!/usr/bin/env python2 #or python2.6 or python3 or even python3.1
来实现兼容性。

在这种情况下,最好让脚本可执行并直接调用它:

#!/bin/bash

/path/to/script.py

这样,您所需的python版本只写在一个文件中。现在大多数系统同时有python2和python3,而且symlinkpython指向python3,而大多数人希望它指向python2。

相关问题 更多 >