Ich verwende AWS EC2, um meine Anwendung "Neuronales Netzwerk in der Kunst" zu starten. Um Bilder zu versenden, stelle ich eine Webseite auf der Basis von flask + virtualenv + apache bereit. Nach dem Absenden des Skripts, das Bild auf dem Server startet, die bei jeder Iteration drucken und ich möchte es speichern, in out.txtApache: Errno 13 Dateizugriff verweigert
__init__.py:
#...
def apply_style(image_name, style_name, iterations):
command = ['"python ~/neural_artistic_style/neural_artistic_style.py', \
' --subject ', '/var/www/superapp/superapp/uploads/' + image_name, \
' --style ', '/var/www/superapp/superapp/uploads/' + style_name, \
' --iterations ', iterations, \
' --network ~/neural_artistic_style/imagenet-vgg-verydeep-19.mat"']
str = ''.join(command)
network = Popen(str, shell=True, stdout=PIPE)
stats = []
for out in network.stdout:
stats.append(out)
line = ' '.join(stats)
return line
@app.route('/upload', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
image = request.files['image']
style = request.files['style']
iterations = request.form['iter']
if file and style:
#Saving images...
result = apply_style(image_name, style_name, iterations)
f = open('out.txt', 'w')
f.write(result)
f.close()
return 'FINISHED'
#...
Nun, ich kann Bild über HTTP hochladen, ohne Ergebnis in out schreiben .txt, aber wenn ich es tue, apache-Protokoll zeigt dies:
[Wed Jun 01 ...] [:error] [pid 2360:tid 14...] return self.view_functions[rule.endpoint](**req.view_args)
[Wed Jun 01 ...] [:error] [pid 2360:tid 14...] File "/var/www/superapp/superapp/__init__.py", line 72, in upload
[Wed Jun 01 ...] [:error] [pid 2360:tid 14...] f = open('out.txt', 'w')
[Wed Jun 01 ...] [:error] [pid 2360:tid 14...] IOError: [Errno 13] Permission denied: 'out.txt'
Alle Dateien in diesem Verzeichnis nun 777 Berechtigung haben. Wenn ich versuche, wie script.py:
f = open('out.txt', 'w')
f.write('some words')
f.close()
everithing Werke etwas mit einfacher Skript zu schreiben. Aber mit Apache tut es nicht. Hat jemand irgendwelche Ideen wie man es beheben kann?
Haben Sie Apache seit den Änderungen neu gestartet? – ritlew
@RitLew: ja! sudo service apache2 restart – Tehada
Gibt es auch schon eine Datei namens out.txt im Verzeichnis? – ritlew