OSError - Errno 13 Разрешение отклонено
Я пытаюсь загрузить изображение через страницу администратора, но он продолжает говорить:
[Errno 13] Permission denied: '/path/to/my/site/media/userfolder/2014/05/26'
папки userfolder/2014/05/26
создаются динамически при загрузке.
В Traceback я обнаружил, что во время этой команды происходит ошибка:
В/usr/lib64/python2.6/os.py Строка 157. при вызове
mkdir(name, mode)
означает, что он не может создать какую-либо папку, поскольку у нее нет разрешения на это.
У меня OpenSuse как ОС на сервере. В httpd.conf у меня есть следующее:
<Directory /path/to/my/site/media>
Order allow,deny
Allow from all
</Directory>
Нужно ли мне chmod или chown?
Ответы
Ответ 1
Вам нужно изменить разрешение каталога, чтобы процесс веб-сервера мог изменить каталог.
-
Чтобы изменить право собственности на каталог, используйте chown
:
chown -R user-id:group-id /path/to/the/directory
-
Чтобы узнать, кому принадлежит веб-сервер (измените httpd
соответственно):
ps aux | grep httpd | grep -v grep
ИЛИ
ps -efl | grep httpd | grep -v grep
Ответ 2
Это также может произойти, если у вас есть косая черта перед именем папки:
path = '/folder1/folder2'
OSError: [Errno 13] Permission denied: '/folder1'
появляется ошибка, но эта функция отлично работает:
path = 'folder1/folder2'
Ответ 3
Я столкнулся с той же проблемой, и я решил.
chmod 777 /path/of/directory/
или
sudo chmod 777 /path/of/directory/
Ответ 4
Вероятно, вы столкнулись с проблемой, когда запрос на загрузку выполняется вызовом функции maybe_download в файле base.py.
В разрешениях временных файлов существует конфликт, и я сам не мог разработать способ изменения разрешений, но мог решить эту проблему.
Сделайте следующее...
- Загрузите четыре файла .gz набора данных MNIST по ссылке (http://yann.lecun.com/exdb/mnist/)
- Затем создайте имена папок MNIST_data (или ваш выбор в папке рабочих каталогов/пакетов сайтов в папке tensorflow\examples).
- Непосредственно скопируйте файлы в папку.
- Скопируйте адрес папки (это, вероятно, будет
(C:\Python\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data))
- Измените "\" на "/", так как "\" используется для escape-символов, чтобы получить доступ к папкам.
- Наконец, если вы следуете инструкциям, ваша функция вызова будет (mnist = input_data.read_data_sets ( "MNIST_data/", one_hot = True));
измените параметр "MNIST_data/" в расположение папки. Как в моем случае было бы (mnist = input_data.read_data_sets ( "C:/Python/Python35/Lib/site-packages/tensorflow/examples/tutorials/mnist/MNIST_data", one_hot = True))
Тогда все будет сделано.
Надеюсь, это сработает для вас.
Ответ 5
Просто попробуйте:
sudo cp /source /destination
Ответ 6
Другой вариант - убедиться, что файл больше нигде не открыт на вашем компьютере.