Подтвердить что ты не робот

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?

4b9b3361

Ответ 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

Другой вариант - убедиться, что файл больше нигде не открыт на вашем компьютере.