Я создал чат на этот вопрос: hereОтказано в доступе при попытке записи в файл с целью
У меня есть мнение, что попытки выполнить 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')
Я получаю ту же ошибку.
My media root установлен в 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
.
Я не знаю, если это имеет значение или нет ...
Вы пытались пойти с консолью python и попытаться записать в файл? – balsagoth
yep, без проблем записывать файл из 'manage.py shell'. Обратите внимание, когда я пишу в файл, он находит его в каталоге проекта. –
и пользователь, которому принадлежит процесс веб-сервера, тот же, что и вы пытались сделать 'manage.py shell' – balsagoth