我尝试过用谷歌搜索答案,但没有成功。
我需要使用公司的超级计算机服务器,但是为了运行我的Python脚本,必须通过shell脚本来执行。
例如,我想让job.sh
执行python_script.py
这怎么实现呢?
确保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
来强制使用该版本。 - Jean-Bernard Jansensource PATH/TO/VENV/bin/activate
,接着调用 python python_script.py
。 - Jean-Bernard Jansen/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
。有没有一种方法可以将我的Python代码嵌入到Bash脚本中? - Keyslinger假设你有一个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版本和路径! - Still.Tony你应该能够通过 python scriptname.py
来调用它,例如:
# !/bin/bash
python /home/user/scriptname.py
同时确保脚本具有运行权限。
您可以使用chmod u+x scriptname.py
将其设置为可执行文件。
将以下程序保存为print.py
:
#!/usr/bin/python3
print('Hello World')
然后在终端中输入:
chmod +x print.py
./print.py
在我看来,编写
python /path/to/script.py
在今天来说,这种方式是相当错误的。你使用哪个版本的Python?是2.6、2.7、3.0还是3.1?大多数情况下,你需要在 Python 文件的 shebang 标签中指定 Python 版本。我鼓励使用
#!/usr/bin/env python2 # or python2.6 or python3,甚至是python3.1以保证兼容性。
在这种情况下,最好将脚本设置为可执行文件并直接调用它:
#!/bin/bash
/path/to/script.py
这样你所需的 Python 版本只需要在一个文件中写入。现在大多数操作系统都同时拥有 Python 2 和 Python 3,而且经常出现符号链接python指向python3,而很多人却期望它指向python2。
python script.py param
一样传递参数吗? - kristian./abc.py -h
- user10481362touch job.sh
并添加运行 Python 脚本的命令(您甚至可以为该 Python 添加命令行参数,我通常会预定义我的命令行参数)。chmod +x job.sh
2. 在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"
3. 当我必须使用不同的预定义参数运行多个 Python 文件时,我通常会使用此方法。python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" .
python python_file.py
,简单明了。接下来,>>将打印并将此.py文件的输出存储在testpy-output.txt文件中。#!c:/Python27/python.exe
(C:\Python27\python.exe是我机器上python.exe的路径) 然后通过以下方式运行脚本:
chmod +x script-name.py && script-name.py
我使用这个并且它运行良好。
#/bin/bash
/usr/bin/python python python_script.py
由于其他帖子已经说得很清楚了(我在寻找以下内容时偶然发现了这篇文章)。
以下是一种从另一个Python脚本执行Python脚本的方法:
Python 2:
execfile("somefile.py", global_vars, local_vars)
Python 3:
with open("somefile.py") as f:
code = compile(f.read(), "somefile.py", 'exec')
exec(code, global_vars, local_vars)
你可以通过提供其他sys.argv
来提供参数。
#!/usr/bin/env bash
-- bash code --
/usr/bin/python3 your_python.py
-- bash code --
python python_script.py
吗? - thkalapython python_script.py
。如果脚本有shebang,也可以只用./python_script.py
。 - user395760