我刚开始使用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正确创建,因此看起来不对。然后我想也许它的权限,但再次,似乎也不太可能。