在uwsgi下运行python脚本时无法从subprocess.call执行gzip

时间:2017-06-23 20:44:25

标签: python nginx uwsgi

我刚开始使用uwsgi并且基本上已经按照这里的教程进行了操作:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-14-04

在我的主烧瓶app.py中,我有一个执行以下代码行的函数:

call("/bin/tar --absolute-names -czvf %s/archive_name.tar.gz %s" % (current_dir, current_dir + '/' + uploaded_file_path), shell=True)

现在当我通过“python main.py”运行应用程序并测试所有内容时,它运行得非常好。当我尝试使用此命令通过uwsgi测试它时:

uwsgi --socket 0.0.0.0:5000 --protocol=http -w main:app

一切都很好,但当它执行那一行时,我得到了这个

Jun 23 19:09:25 XXX uwsgi[14970]: tar (child): gzip: Cannot exec: No such file or directory
Jun 23 19:09:25 XXX uwsgi[14970]: tar (child): Error is not recoverable: exiting now

我尝试将其切换到此

call("/bin/tar --absolute-names -cvf data/archive_name.tar %s" % current_dir + '/' + uploaded_file_path, shell=True)
call("/bin/gzip data/archive_name.tar")

我可以验证tar是否已创建但是当我尝试gzip时没有任何反应。这次没有任何内容出现在日志中。

我的理论是,当通过uwsgi运行时路径被弄错,但在第二种情况下,tar正确创建,因此看起来不对。然后我想也许它的权限,但再次,似乎也不太可能。

0 个答案:

没有答案