uwsgi + Python子进程
大家好
我试图使用Python子进程模块在shell中运行一个简单的命令,一切都很好,直到我把uwsgi放在上面。我也使用flask作为web框架。
下面是非常简化的部分代码
if request.method == 'POST':
testquery = subprocess.run( "ifconfig", shell=True,stdout=subprocess.PIPE,universal_newlines=True )
whoisresults=whoisquery.stdout
print(whoisresults)
我得到了以下错误:binsh: 1: ifconfig: not found。
我把 "ifconfig "替换为Python虚拟evn运行的完整路径。
testquery = subprocess.run( "/home/net/netools/netoolsenv/bin ifconfig", shell=True,stdout=subprocess.PIPE,universal_newlines=True )
whoisresults=whoisquery.stdout
print(whoisresults)
但它仍然不能工作,只是错误是不同的 - binsh: 1: homenetnetoolsnetoolsenvbin: Permission denied
谁能告诉我应该往哪个方向挖?我是这里的初学者。
我得到了以下错误。
/bin/sh: 1: ifconfig: not found
uWSGI守护进程通常以另一个用户的身份运行,而这个用户没有 PATH
设置。使用完整的绝对路径来 ifconfig
.
要找到工具的完整路径,使用 which
例如,在你的终端运行这个命令。
$ which ifconfig /usr/bin/ifconfig
并使用该完整路径 ifconfig
在您的 Python 脚本中。
testquery = subprocess.run( "/usr/bin/ifconfig", shell=True,stdout=subprocess.PIPE,universal_newlines=True )