极客小将

您现在的位置是:首页 » python编程资讯

资讯内容

使用nohup运行python报错

极客小将2020-12-02-
简介在linux下可以直接使用pythontest.py运行的文件,使用nohuppythontest.py就会报错,报的错大致就是Importerror:NomodulenamedXXX。出现这种情况是因为nohup找到的python路径不对导致的。那么nohup找的的路径是什么呢?新建了一个pyth

极客小将版权所有。

Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

在linux下可以直接使用python test.py运行的文件,使用nohup python test.py就会报错,报的错大致就是Import error: No module named XXX。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

出现这种情况是因为nohup找到的python路径不对导致的。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

那么nohup找的的路径是什么呢?Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

新建了一个python文件,文件内容是这样的:Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

import sys print(sys.path)

当使用python test.py运行文件时,输出是:Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

当使用nohup python test.py时,输出是这个样子的Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

也就是说,直接运行python命令使用的是python3,但是nohup找到的python路径是python2。这时候就需要指定python版本来运行py文件。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

这时,只要指定python版本来运行nohup文件即可:Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

也就是:nohup //usr/local/python3/bin/python3 test.py > log.txt2>&1 &。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

其中,1代表标准输出,2代表标准错误输出,2>&1 是将标准错误输出重定向到标准输出,也就是将标准输出和标准错误输出都输出到log.txt文件中,**后的&将程序变为后台守护进程,这样运行的程序就不会随着终端的挂起而停止。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

更多Python知识请关注Python视频教程栏目。Dlz少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

网友点评

共有5条评论来说两句吧...

在线客服