Я создал чат для этого вопроса: здесь
У меня есть представление, которое пытается выполнить f = open('textfile.txt', 'w')
, но на моем работающем сервере это вызывает ошибку [Errno 13] Permission denied: 'textfile.txt'
.
Моя файловая структура выглядит следующим образом:
- root
|
- project
|
- app
|
- media
где представление живет в app
.
Я пытался использовать textfile.txt в реальном времени в корневом каталоге, проекте, приложении и носителе, каждый из которых имеет 777 разрешений для файлов (владелец, группа и общедоступные пользователи могут читать, писать и выполнять) [* 1].
Если я изменю команду на разрешение на чтение, т.е. f = open('textfile.txt', 'r')
, я получу ту же ошибку.
Мой корень мультимедиа установлен на os.path.join(os.path.dirname(__file__), 'media').replace('\\','/')
и все это работает на сервере apache через webfaction.
Итак, у меня два вопроса. Откуда django / python пытается открыть этот файл? и что мне нужно изменить, чтобы получить разрешение на открытие и запись в файл.
[* 1] Я знаю, что это не очень хорошая идея, у меня просто есть этот набор для текущих целей отладки.
EDIT:
Я не знаю, относится ли это к делу, но теперь, когда я изменяю его на f = open(os.path.join(settings.MEDIA_URL, 'textfile.txt'), 'r')
вместо f = open(os.path.join(settings.MEDIA_URL, 'textfile.txt'), 'w')
, я получаю ошибку [Errno 2] No such file or directory
.
Я не знаю, имеет ли это смысл или нет ...