如何使用带有Ubuntu和apache服务器的Flask读取和写入文件

时间:2016-11-26 15:08:26

标签: python apache flask virtualenv wsgi

我正在尝试部署一个使用Flask写入和读取png图像的应用程序。在本地我可以运行我的脚本没有错误,除非我在我的服务器上运行它。

我在DigitalOcean上使用此guide进行了部署。它使用apache,wsgi和virtualenv。

这是我的代码示例:

if(isOpen==true){break;}

我发现引起问题的原因是from flask import Flask from flask import send_file from PIL import Image app = Flask(__name__) @app.route("/") def hello(): img = Image.new('RGB', (200, 100), (255, 255, 255)) img.save('output.png') return send_file('output.png', mimetype='image/png') if __name__ == "__main__": app.run() 我还发现,如果我尝试加载像img.save('output.png')这样的字体,那么它也不起作用。我的.png和.otf文件与font = ImageFont.truetype("Archive.otf", 60)

位于同一文件夹中

我想我正在弄乱apache的配置或directrory路径。如果我在烧瓶环境之外运行__init__.py它可以工作,所以它不是库或依赖项的问题。

1 个答案:

答案 0 :(得分:0)

您需要使用绝对路径,例如/var/www/somedir/somefile。这是因为Apache下的Flask没有为Python提供可用的工作目录。我建议使路径可配置。