linux如何运行python脚本:终端输入指令直接执行本地脚本文件

linux如何运行python脚本:终端输入指令直接执行本地脚本文件

刚开始接触Linux服务器的时候,最头疼的就是本地写好的Python脚本,传到服务器上完全不知道怎么启动,折腾了大半天,才算摸透linux如何运行python脚本的实操流程,全程都是实打实踩坑试出来的操作,没有任何虚的理论,照着操作就能直接跑通程序。

最先犯的低级错误,就是直接双击脚本文件试图打开运行。Windows系统里这么操作习惯了,以为Linux也能靠图形界面直接启动程序,结果服务器大多是纯命令行模式,根本没有双击运行的选项。就算偶尔有图形界面,点开也只是打开代码文本,不会执行脚本功能,忙活半天完全是无用功,白白浪费了十几分钟。

后来才反应过来,Linux所有脚本运行的核心,都离不开终端指令。第一步要做的根本不是输代码,而是找到脚本所在的文件夹位置。很多人运行失败都是栽在这一步,终端默认打开的是根目录,脚本放在子文件夹里,不切换路径的话,系统根本找不到要执行的文件。当时就是没切换目录,反复输入运行指令,终端一直报找不到文件的错误,越操作越懵。

切换目录的操作很简单,直接在终端输入cd 加上脚本的文件路径就行。比如脚本放在home文件夹下的python-file目录里,就输入cd /home/python-file,按下回车,终端前缀发生变化,就说明路径切换成功了。这里要注意路径不能输错,大小写、符号都要和文件夹原名一致,Linux系统对路径大小写极其敏感,一个字母错了就会直接报错。

确认路径正确之后,就可以输入核心运行指令了。最基础通用的指令是python3 脚本名.py,这是适配绝大多数Linux系统的写法。很多新版Linux系统默认没有python指令,只识别python3,之前试过直接输python 脚本名,终端直接提示指令不存在,折腾好久才搞明白,新版服务器必须统一用python3调用程序。输入指令后回车,脚本就会直接运行,打印出对应的程序结果,简单的单次运行需求,靠这行代码就完全够用。

如果是需要长时间后台运行的脚本,比如数据爬取、定时运算这类不能中断的程序,普通运行方式就不行了,关闭终端程序就会直接终止。之前跑爬虫脚本,开着终端一切正常,一关窗口程序就停了,数据直接中断,白白浪费了运行一半的进度。

后面慢慢试出了后台运行的方法,只需要在基础指令后面加上nohup和&,完整指令就是nohup python3 脚本名.py &。这个操作能让脚本脱离终端独立运行,就算关闭终端、断开远程连接,程序也会在服务器后台持续执行。而且系统会自动生成一个nohup.out文件,所有程序的运行日志、报错信息都会存在里面,后续排查问题直接打开这个文件查看就行,特别方便。

还有个很容易忽略的细节,部分刚上传的脚本会出现权限不足的报错。文件从本地传到服务器后,默认没有可执行权限,这时候不管怎么输运行指令,都会提示权限不够。解决办法特别简单,提前输入chmod +x 脚本名.py,给文件添加可执行权限,再用python3指令运行,就不会出现权限报错了。

没必要去记花里胡哨的运行方式,日常使用就这几种操作。单次临时运行就用基础指令,长期后台挂机运行就加后台参数,报错大概率就是路径不对或者权限不足,针对性调整一下就能解决。

那天调试完最后一个后台脚本,关掉终端刷新了一遍进程列表,看着程序稳稳挂在服务器后台,就直接关掉网页去休息了。

了解更多百科知识请访问 百科