授予Django在shell中使用特定软件的权限

授予Django在shell中使用特定软件的权限

我需要exiftool通过 django 调用 shell,但 django 似乎无法使用这个软件。当我exiftool -j <image>在终端中运行时,它运行良好,但在 django 中,None我认为的结果显示 django 无法使用它。下面的代码显示了我在 django 中如何使用exiftool

 cmd_get_meta = 'exiftool -j "{filename}"'.format(filename=filename)
    process = subprocess.Popen(cmd_get_meta,
                               stdout=subprocess.PIPE,
                               stderr=subprocess.STDOUT,
                               shell=True)
    raw_result = process.communicate()
    meta = json.loads(str(raw_result[0], 'utf-8'))[0]

raw-result在我调用进程后为 None 并且显示以下错误:

File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None

我必须注意,我使用 uwsgi 运行 django,但我不知道由哪个用户运行。抱歉,我是 Ubuntu 新手,我对用户和权限的了解不够。如果您需要更多信息,请告诉我。谢谢


我运行ps aux | grep exiftoolps aux | grep uwsgi结果是:

$ ps aux | grep uwsgi   
backend   1243  0.0  0.0  14224   988 pts/9    S+   14:52   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn uwsgi
www-data 20469  0.0  0.7 222664 63984 ?        S     2018  32:55 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32357  0.0  0.8 473188 67804 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32358  0.0  0.8 473188 67436 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32362  0.0  0.8 476604 67700 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32363  0.0  0.8 472792 67296 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32368  0.0  0.9 482496 74316 ?        Sl   14:18   0:01 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32372  0.0  0.8 476348 67296 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32376  0.0  0.8 477884 69996 ?        Sl   14:18   0:01 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
www-data 32377  0.0  0.8 477116 68968 ?        Sl   14:18   0:00 /usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/hamclassy.ini --daemonize /var/log/uwsgi/app/hamclassy.log
$ ps aux | grep exiftool
backend   1233  0.0  0.0  14224  1016 pts/9    S+   14:52   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn exiftool

相关内容