pip install acesso negado no Windows

110

Estou tentando rodar pip install mitmproxyno Windows, mas continuo tendo acesso negado, mesmo com cmde PowerShellusando a Run as Administratoropção.

WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'

Como posso fazer isso funcionar?

Bruno Klein
fonte

Respostas:

139

No caso do Windows, em cmd tente executar a instalação do pip usando o executável Python

por exemplo

python -m pip install mitmproxy

isso deve funcionar, pelo menos funcionou para mim para a instalação de outro pacote.

nayak
fonte
6
Por alguma razão, as permissões do arquivo temporário eram menos do que controle total para o meu usuário. Seguir esse caminho python -mfez a diferença.
Jason Dunkelberger
2
Nós sabemos por que isso funciona? E não através do PowerShell?
Big Money
66

Altere as permissões de segurança da pasta de instalação do Python da seguinte forma:

  1. Abra um shell Python
  2. Vá para o gerenciador de tarefas
  3. Encontre o processo python
  4. Clique com o botão direito e abra o local
  5. A pasta será aberta no explorer, vá até um diretório
  6. Clique com o botão direito na pasta e selecione propriedades
  7. Clique na guia de segurança e clique em 'editar'
  8. Adicione todos e dê a eles permissão para ler e escrever.
  9. Salve suas alterações

Se você abrir cmdcomo administrador; então você pode fazer o seguinte:

Se Python estiver definido em seu PATH, então:

python -m pip install mitmproxy
Richard Kenneth Niescior
fonte
3
Tive que fazer isso para TODOS OS PACOTES DE APLICATIVO e para Usuários, mas funcionou.
Crônica de
1
Funcionou perfeitamente. Muito obrigado!
Sudipto Shome
3
Rota alternativa com esforço semelhante: 1) Instale o Linux 2)sudo pip install foo
Nearoo
1
@Chronicle Você realmente permitiu que todos lessem e escrevessem nos perfis dos usuários? Se sim, é uma ideia muito ruim (muito ruim).
David Ferenczy Rogožan
@Richard Como adicionar as permissões de leitura e gravação nos diretórios do Python pode resolver o problema com a permissão negada no tempdiretório do usuário ? Eu diria que é a maneira de executar pip(em python -m pipvez de apenas pipcomo @nayak sugeriu) o que ajuda, essas 9 etapas anteriores são provavelmente irrelevantes (já que realmente não fazem nenhum sentido).
David Ferenczy Rogožan
27

Pessoalmente, descobri que abrir cmdcomo administrador e executar python -m pip install mitproxy parece resolver o meu problema.

Nota: - Eu instalei o python através dechocolatey

Bhoom Suktitipat
fonte
Você salvou meu dia, mano!
Maulik Dodia de
1
se você executar cmdcomo administrador, você poderá apenas fazer o normal pip install [package]. Funcionou para mim de qualquer maneira.
EliSquared
14

Uma coisa adicional que não foi abordada nas respostas anteriores e que costuma causar problemas no Windows e me impedir de instalar alguns pacotes, apesar de executar como administrador, é que você obtém o mesmo erro de permissão negada se houver outro programa que use alguns dos arquivos que você (ou pip install) tente acessar. Este é um "recurso" realmente estúpido do Windows que aparece muitas vezes, por exemplo, ao tentar mover alguns arquivos.

Além disso, não tenho ideia de como descobrir qual programa bloqueia um arquivo específico, então a coisa mais fácil de fazer é reiniciar e fazer a instalação antes de iniciar qualquer coisa, em particular antes de executar, por exemplo, Spyder ou qualquer outro software baseado em Python. Você também pode tentar fechar todos os programas, mas pode ser difícil saber qual deles realmente contém um arquivo. Para um diretório, por exemplo, é suficiente que você tenha uma janela do Explorer aberta nesse diretório.

Robert
fonte
Sim, fez o truque para mim! Trabalhei no Git Bash, Pycharm Terminal e Windows Terminal simultaneamente, após fechar dois de três tudo funcionou.
Cappo
10

Abra o cmd com "Executar como administrador" e execute o comando pip install mitmproxy. Ele irá instalá-lo.

Sharan
fonte
10

Como, estou instalando através do Prompt do anaconda. No meu caso, nem funcionou com python -m pip installEntão, adiciono isso

python -m pip install <package_name> --user

Funciona para mim.

Gostar: python -m pip install "numpy-1.15.4+mkl-cp36-cp36m-win_amd64.whl" --user

Observe que aspas duplas não são necessárias, você pode fornecer o nome do pacote que deseja instalar.

Outro você deve tentar executar o Prompt de Comando como Executar como Administrador e então tentar instalar o pip. Deve funcionar também.

susan097
fonte
Isso funcionou para mim instalar pacotes python (sympy neste caso) na escola. Obrigado!
JDG de
A melhor solução quando você não tem direitos de administrador sobre seu sistema.
Ajay Sharma
5

Tente dar permissão para controle total da pasta python.

Encontre o diretório raiz do python -> clique com o botão direito do mouse -> propriedades -> segurança -> editar -> dê aos usuários controle total -> sim e espere o processo terminar.

Funciona para mim.

pajarnas
fonte
3

Tente excluir a pasta c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6umanualmente e tente novamente o comando pip.

Felix
fonte
Obrigado por isso. Alguns arquivos pip temporários estavam bloqueando a instalação.
Eok
3

Abrir prompt de comando como administrador funcionou para mim sem usar o executável Python. Clique com o botão direito do mouse no atalho do prompt de comando e escolha "Executar como Administrador". Em seguida, execute o seguinte comando.

pip install Django
Charasala
fonte
O mesmo para mim - ele só precisava executar cmd como administrador.
Charidimos 01 de
3

A causa no meu caso foi ter um bloco de notas jupyter aberto, que importava a biblioteca relevante; a causa raiz parece ser o erro do Windows devido ao arquivo estar aberto / em uso (veja também a resposta de @Robert e a recomendação para reiniciar).

Portanto, outra coisa a verificar é se nenhum outro processo Python está em execução.

Para mim, desligar o servidor do notebook resolveu o problema.

etov
fonte
2
  1. Abra o Prompt de Comando como Administrador.

  2. Para instalar qualquer pacote Python, use este comando incluindo --user.

pip install --ignore-installed --upgrade --user <packagename>

Amar Kumar
fonte
1

Quando tudo mais falhar, tente encerrar o IDE. Tive muitos casos em que PyCharm estava causando isso. Assim que fechei o PyCharm, finalmente consegui instalar meus pacotes a partir da linha de comando. Alternativamente, você também pode instalar através do próprio PyCharm em Configurações -> Projeto: xxx -> Intérprete do projeto -> +.

Kichik
fonte
1
Tive o mesmo problema até fechar o Spyder
atm
0

Execute cmd.exe como administrador e digite:

python -m pip install
mdev
fonte
0

Eu encontrei um problema semelhante. Mas o relatório de erro é sobre

[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)

Primeiro tentei https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035 , mas parece que não conseguiu resolver meus problemas e ainda repito o o mesmo problema.

E, segundo, se você estiver trabalhando em um computador comercial, geralmente pode existir um filtro de conteúdo da web (mas posso acessar https://pypi.python.org diretamente pelo navegador). E resolva esse problema adicionando um servidor proxy.

Para janelas, abra o Internet propertiesatravés do IE ou Chrome ou qualquer outro e, em seguida, defina o endereço de proxy válido e a porta , dessa forma, resolva meus problemas

Ou apenas adicionando a opção pip --proxy [proxy-address]:port install mitmproxy . Mas você sempre precisa adicionar esta opção ao instalar por pypi

As duas soluções acima são alternativas para sua demanda.

K. Andy wang
fonte
0

No meu caso, nem funcionou com python -m pip install

O que fiz é, de um cmd como administrador:

PsExec.exe -i -s -d cmd.exe

Para gerar um cmd SYSTEM, então pip install mitmproxy

;)

aDoN
fonte
-1

Basta fechar todos os arquivos Python abertos. E tente executar como administrador. Vai funcionar.

por exemplo

pip install numpy
Faizan Amin
fonte