当前位置:首页 > 行业动态 > 正文

如何在Linux环境中运行Python脚本?

在Linux中执行Python脚本,首先确保Python已经安装。给予脚本执行权限,使用 chmod命令添加可执行权限,如: chmod +x script.py。通过 ./script.py运行脚本或使用 python script.py明确指定Python解释器运行。

在Linux系统中,执行Python脚本有多种方法,以下是一些常用的方法:

如何在Linux环境中运行Python脚本?  第1张

1、使用Python解释器直接执行脚本

在终端中输入以下命令:

python 文件名.py

这将使用默认的Python解释器(通常是Python 2.7或Python 3.x)执行脚本,如果需要使用特定版本的Python解释器,可以使用以下命令:

python2 文件名.py
python3 文件名.py

2、添加可执行权限并运行脚本

为脚本添加可执行权限,使用以下命令:

chmod +x 文件名.py

可以直接运行脚本,如下所示:

./文件名.py

3、将Python添加到环境变量并运行脚本

确保Python已添加到环境变量中,可以通过以下命令检查:

echo $PATH

如果Python不在环境变量中,可以使用以下命令将其添加到环境变量:

export PATH=$PATH:/usr/local/bin/python

可以直接运行脚本,如下所示:

文件名.py

4、使用shebang指定解释器并运行脚本

在脚本的第一行添加shebang,指定解释器,对于Python 3.x,可以添加以下内容:

#!/usr/bin/env python3

保存并关闭脚本,为脚本添加可执行权限,使用以下命令:

chmod +x 文件名.py

可以直接运行脚本,如下所示:

./文件名.py

5、使用cron定时任务执行脚本

如果需要在Linux系统中定期执行Python脚本,可以使用cron定时任务,创建一个新的cron任务,使用以下命令:

crontab e

在打开的编辑器中添加以下内容(以每天凌晨1点执行脚本为例):

0 1 * * * /usr/bin/python3 /path/to/文件名.py

保存并关闭编辑器,脚本将在每天凌晨1点自动执行。

6、使用systemd服务执行脚本

如果需要在Linux系统中作为后台服务运行Python脚本,可以使用systemd,创建一个名为文件名.service的新文件,并将以下内容添加到文件中:

[Unit]
Description=描述信息
After=network.target
[Service]
User=用户名
WorkingDirectory=/path/to/script/directory
ExecStart=/usr/bin/python3 u /path/to/文件名.py
Restart=always
[Install]
WantedBy=multiuser.target

将描述信息、用户名和/path/to/替换为实际值,将文件保存到/etc/systemd/system/目录下,使用以下命令启用并启动服务:

sudo systemctl enable 文件名.service
sudo systemctl start 文件名.service

脚本将作为后台服务运行,可以使用以下命令检查服务状态:

sudo systemctl status 文件名.service

7、使用screen或tmux在后台运行脚本

如果需要在Linux系统中在后台运行Python脚本,可以使用screen或tmux工具,安装screen或tmux(如果尚未安装),然后创建一个新的会话:

screen S 会话名
tmux newsession s 会话名

在新的会话中运行Python脚本:

python 文件名.py

按Ctrl+A和D(对于screen)或Ctrl+B和D(对于tmux)将会话从前台分离,脚本将在后台运行,要重新连接到会话,请使用以下命令:

screen r 会话名
tmux attachsession t 会话名

8、使用nohup在后台运行脚本

如果需要在Linux系统中在后台运行Python脚本,并且希望在关闭终端后继续运行,可以使用nohup命令,运行以下命令:

nohup python 文件名.py &

这将在后台运行脚本,并将其输出重定向到名为nohup.out的文件,要查看脚本的输出,可以使用以下命令:

cat nohup.out

即使关闭终端,脚本仍将继续运行,要停止脚本,可以使用以下命令:

kill 进程ID

其中进程ID是脚本的进程ID,可以通过ps命令查找。

0