我尝试谷歌搜索答案,但没有运气。
我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。
例如我要job.sh
执行python_script.py
如何做到这一点?
我尝试谷歌搜索答案,但没有运气。
我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。
例如我要job.sh
执行python_script.py
如何做到这一点?
Answers:
只要确保python可执行文件在PATH环境变量中,然后在脚本中添加
python path/to/the/python_script.py
细节:
#!/bin/sh python python_script.py
chmod u+x job.sh
./job.sh
python --version
,并可以使用强制执行该版本python3 hello.py
。
source PATH/TO/VENV/bin/activate
然后致电python python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
有没有办法在bash脚本中内联包含我的python代码?
假设您有一个python文件,请hello.py
创建一个名为的文件job.sh
,其中包含
#!/bin/bash
python hello.py
将其标记为可执行
$ chmod +x job.sh
然后运行它
$ ./job.sh
修改脚本hello.py
并将其添加为第一行
#!/usr/bin/env python
将其标记为可执行
$ chmod +x hello.py
然后运行它
$ ./hello.py
#!/usr/bin/env python
。请记住要确保您为系统引用了正确的python版本+路径!
恕我直言
python /path/to/script.py
是非常错误的,尤其是在这些日子里。哪个蟒蛇?python2.6?2.7?3.0?3.1?大多数时候,您需要在python文件的shebang标记中指定python版本。我鼓励使用
#!/ usr / bin / env python2 #or python2.6或python3甚至python3.1为了兼容性。
在这种情况下,使脚本可执行并直接调用它会更好:
#!/ bin / bash /path/to/script.py
这样,您所需的python版本就只写在一个文件中。如今,大多数系统同时具有python2和python3,并且碰巧symlink python指向python3,而大多数人希望它指向python2。
python script.py param
吗?
将以下程序另存为print.py
:
#!/usr/bin/python3
print('Hello World')
然后在终端中输入:
chmod +x print.py
./print.py
这对我有用:
创建一个新的外壳文件作业。这么说吧:
touch job.sh
并添加命令以运行python脚本(您甚至可以向该python添加命令行参数,我通常会预先定义命令行参数)。
chmod +x job.sh
在内部job.sh
添加以下py文件,例如:
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
通常,当我必须运行带有不同预定义参数的多个python文件时,通常会使用它。
注意:快速了解此处发生的情况:
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" .
python python_file.py
简单,简单地使用它。接下来,>>将打印此.py文件的输出并将其存储在testpy-output.txt文件中。
python python_script.py
输入Shell脚本?