1
resposta

Permission denied

Tentando salvar o modelo, tive o seguinte erro:

---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
<ipython-input-179-286d84d8369f> in <module>
----> 1 output = open('modelo_consumo_cerveja', 'wb')
      2 pickle.dump(modelo, output)
      3 output.close()

PermissionError: [Errno 13] Permission denied: 'modelo_consumo_cerveja'

Como devo corrigir?

1 resposta

Boa tarde Cassiano, tudo bem com você?

Antes de mais nada, desculpe pela demora em responder.

Um bom ponto de partida Cassiano é responder onde o nosso notebook está tentando salvar o arquivo? Isso mesmo, ele está tentando salvar localmente no nosso computador. Agora que já entendemos onde o arquivo será salvo eu pergunto: Quem está tentando executar essa ação para nós? O Prompt de Comando ou uma IDE como o Visual Code. Legal, já sabemos que está faltando permissão para esta ferramenta que está executando o nosso código.

Existem algumas formas de resolver esse problema, dependendo do sistema operacional utilizado.

Começando pelo Windows, vamos à primeira opção. Caso você esteja utilizando tanto o Visual Code, quanto o Prompt de Comando, você pode pedir para executar com privilégio de administrador. Basta clicar com o botão direito no Visual Code/Prompt de Comando e em seguida clicar em Executar como administrador, conforme a imagem a seguir:

No canto inferior esquerdo a palavra Visual Studio Code está destacada por um retangulo vermelho ao seu redor com o número 1 na mesma cor acima do retangulo. Ao seu lado direito aparece um menu com as opções, iniciando de cima para baixo as opções: Abrir, Executar como administrador destacado por um retangulo vermelho com o número 2 na mesma cor acima do retangulo, Fixar em iniciar, Desfixar da barra de tarefas, propriedades

Ainda no Windows, a segunda opção é você dar permissão diretamente na pasta onde o arquivo será salvo. Para isso basta:

  1. clicar com o botão direito do mouse na pasta

  2. clicar em propriedades

    Um menu retangular, iniciando de baixo para cima a primeira opção é propriedades. Propriedades está destacada por um retangulo vermelho ao seu redor. O fundo atrás do menu é da cor azul clara e no canto superior direito aparece uma pasta com o nome modelo.

  3. clicar com o botão direito do mouse na pasta

  4. clicar em propriedades

    Janela retngular com o título propriedades de modelo, com a aba Segurança selecionada e destacada por um retangulo ao seu redor na cor vermelha com o número 1 na mesma cor acima do retangulo. Abaixo Nomes de grupo ou de usuário com o usuário local erika destacado por um retangulo ao seu redor vermelho e o numero 2 na mesma cor acima do retangulo. No centro vertical da imagem, localizado à direita está o botão editar, também destacado por um retangulo vermelho e o número 3 acima do retangulo.

  5. Marcar a opção Permitir na permissão para controle total

    janela retangular com título Permissões para modelo, com a aba segurança, na metade de cima da imagem o usuario local erika destacado por um retângulo vermelho ao seu redor, na metade de baixo tem um retangulo vermelho destacando a opção controle total e um quadrado selecionado na opção permitir. No limite inferior estão os botões ok e cancelar

  6. Clicar no botão ok

Pronto, agora a ferramenta que está executando o código deve conseguir criar o arquivo desejado.

Caso você esteja com o Linux, você pode utilizar o comando chmod, que é responsável por alterar as permissões de arquivos. Para isso basta seguir os seguintes passos:

  1. Fechar a execução do notebook
  2. Abrir o terminal na pasta que se encontra o notebook e digitar:
    sudo chmod -R a+rw . 
  3. Executar o notebook novamente através do comando:
    jupyter notebook

Na documentação guia Linux do comando CDMOD você consegue verificar outras opções e exemplos. Além da documentação, você pode dar uma olhada no artigo escrito pelo Yuri Matheus Entendendo as permissões no Linux. Nele o Yuri explica como conceder permissão para o navegador abrir um arquivo que está salvo localmente. Perceba que é uma situação análoga a sua, uma ferramenta tentando abrir, no seu caso criar, um arquivo.

Espero que isso te ajude. Qualquer problema eu estou aqui para ajudar :)

Abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software