acceso de instalación pip denegado en Windows

110

Estoy tratando de ejecutar pip install mitmproxyen Windows, pero me siguen dando acceso denegado, incluso con cmdy PowerShellutilizando la Run as Administratoropción.

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'

¿Cómo puedo hacer que esto funcione?

Bruno Klein
fuente
También hay una buena publicación anterior: ¿ alguna idea de cómo actualizar Python PIP en una caja de Windows?
strpeter

Respuestas:

139

En el caso de Windows, en cmd intente ejecutar pip install usando el ejecutable de Python

p.ej

python -m pip install mitmproxy

esto debería funcionar, al menos funcionó para mí para la instalación de otro paquete.

nayak
fuente
6
Por alguna razón, los permisos del archivo temporal eran menos que el control total para mi usuario. Seguir esta ruta python -mmarcó la diferencia.
Jason Dunkelberger
2
¿Sabemos por qué funciona esto? ¿Y no a través de PowerShell?
Big Money
66

Cambie los permisos de seguridad de la carpeta de instalación de Python mediante:

  1. Abra un shell de Python
  2. Ir al administrador de tareas
  3. Encuentra el proceso de Python
  4. Haz clic derecho y abre la ubicación
  5. La carpeta se abrirá en el explorador, sube un directorio
  6. Haga clic derecho en la carpeta y seleccione propiedades
  7. Haga clic en la pestaña de seguridad y presione 'editar'
  8. Agregue a todos y déles permiso para leer y escribir.
  9. Guarda tus cambios

Si abre cmdcomo administrador; entonces puedes hacer lo siguiente:

Si Python está configurado en su PATH, entonces:

python -m pip install mitmproxy
Richard Kenneth Niescior
fuente
3
Tuve que hacer esto tanto para TODOS LOS PAQUETES DE APLICACIÓN como para los Usuarios, pero luego funcionó.
Crónica
1
Funcionó perfectamente. ¡Gracias una tonelada!
Sudipto Shome
3
Ruta alternativa con un esfuerzo similar: 1) Instale Linux 2)sudo pip install foo
Nearoo
1
@Chronicle ¿De verdad permitiste que todos leyeran y escribieran en los perfiles de usuario? Si es así, es una mala idea (muy mala).
David Ferenczy Rogožan
@Richard ¿Cómo la adición de permisos de lectura y escritura en los directorios de Python puede resolver el problema con el permiso denegado en el tempdirectorio del usuario ? Yo diría que es la forma de ejecutar pip(en python -m piplugar de lo pipque sugirió @nayak) lo que ayuda, esos 9 pasos anteriores probablemente sean irrelevantes (ya que realmente no tiene ningún sentido).
David Ferenczy Rogožan
27

Personalmente, descubrí que al abrir cmdcomo administrador y luego ejecutar python -m pip install mitproxy parece solucionar mi problema.

Nota: - Instalé Python a través dechocolatey

Bhoom Suktitipat
fuente
¡Me salvaste el día, hermano!
Maulik Dodia
1
si se ejecuta cmdcomo administrador, debería poder hacerlo con normalidad pip install [package]. Funcionó para mí de todos modos.
EliSquared
14

Una cosa adicional que no se ha cubierto en respuestas anteriores y que a menudo causa problemas en Windows y me impidió instalar algún paquete a pesar de ejecutarme como administrador es que obtiene el mismo error de permiso denegado si hay otro programa que usa algunos de los archivos que (o pip install) intente acceder. Esta es una "característica" realmente estúpida de Windows que aparece muchas veces, por ejemplo, al intentar mover algunos archivos.

Además, no tengo ni idea de cómo averiguar qué programa bloquea un archivo en particular, por lo que lo más fácil es reiniciar y realizar la instalación antes de iniciar cualquier cosa, en particular antes de ejecutar, por ejemplo, Spyder o cualquier otro software basado en Python. También puede intentar cerrar todos los programas, pero puede resultar complicado saber cuál contiene realmente un archivo. Para un directorio, por ejemplo, es suficiente que tenga una ventana del Explorador abierta en ese directorio.

Robert
fuente
¡Sí, me hizo el truco! Trabajé en Git Bash, Pycharm Terminal y Windows Terminal simultáneamente, después de cerrar dos de tres, todo funcionó.
Cappo
10

Abra cmd con "Ejecutar como administrador" y ejecute el comando pip install mitmproxy. Lo instalará.

Sharan
fuente
10

Como, estoy instalando a través de Anaconda Prompt. En mi caso, ni siquiera funcionó con python -m pip installEntonces, agrego esto

python -m pip install <package_name> --user

Esto funciona para mi.

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

Tenga en cuenta que las comillas dobles no son necesarias; puede dar el nombre del paquete que desea instalar.

Otro debería intentar ejecutar el símbolo del sistema como Ejecutar como administrador y luego intentar instalar pip. Debería funcionar bien.

susan097
fuente
Esto funcionó para mí para instalar paquetes de Python (sympy en este caso) en la escuela. ¡Gracias!
JDG
La mejor solución cuando no tiene derechos de administrador sobre su sistema.
Ajay Sharma
5

Intente dar permiso para controlar completamente la carpeta de Python.

Busque el directorio raíz de Python -> haga clic con el botón derecho -> propiedades -> seguridad -> editar -> dé a los usuarios Control total -> sí y espere a que finalice el proceso.

Esto funciona para mi.

pajarnas
fuente
3

Intente eliminar la carpeta c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6umanualmente y luego vuelva a intentar el comando pip.

Felix
fuente
Gracias por esto. Algunos archivos pip temporales estaban bloqueando la instalación.
Eok
3

Abrir el símbolo del sistema como administrador me funcionó sin usar el ejecutable de Python. Haga clic derecho en el acceso directo del símbolo del sistema y seleccione "Ejecutar como administrador". Luego ejecute el siguiente comando.

pip install Django
Charasala
fuente
Lo mismo para mí, solo necesitaba ejecutar cmd como administrador.
Charidimos
3

La causa en mi caso fue tener un cuaderno jupyter abierto, que estaba importando la biblioteca relevante; la causa principal parece ser un error de Windows debido a que el archivo está abierto / en uso (consulte también la respuesta de @ Robert y la recomendación de reiniciar).

Entonces, otra cosa para verificar es que no se estén ejecutando otros procesos de Python.

Para mí, apagar el servidor portátil resolvió el problema.

etov
fuente
2
  1. Abra el símbolo del sistema como administrador.

  2. Para instalar cualquier paquete de Python, utilice este comando, incluido --user.

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

Amar Kumar
fuente
1

Cuando todo lo demás falla, intente salir de su IDE. Tuve muchos casos en los que PyCharm estaba causando esto. Tan pronto como salí de PyCharm, finalmente pude instalar mis paquetes desde la línea de comandos. Alternativamente, también puede instalar a través de PyCharm en Configuración -> Proyecto: xxx -> Intérprete del proyecto -> +.

kichik
fuente
1
Tuve el mismo problema hasta que cerré Spyder
atm
0

Ejecute cmd.exe como administrador y luego escriba:

python -m pip install
mdev
fuente
0

Me encontré con un problema similar, pero el informe de error es sobre

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

Primero probé este https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035 , pero parece que no pudo resolver mis problemas, y aún repito el mismo problema.

Y en segundo lugar, si está trabajando en una computadora comercial, generalmente puede existir un filtro de contenido web (pero puedo acceder a https://pypi.python.org directamente a través del navegador) y resolver este problema agregando un servidor proxy.

Para Windows, abra a Internet propertiestravés de IE o Chrome o lo que sea, luego configure la dirección y el puerto proxy válidos , y de esta manera resuelva mis problemas

O simplemente agregando la opción. pip --proxy [proxy-address]:port install mitmproxyPero siempre necesita agregar esta opción mientras instala por pypi

Las dos soluciones anteriores son alternativas para su demanda.

K. Andy Wang
fuente
0

En mi caso, ni siquiera funcionó con python -m pip install

Lo que he hecho es, desde un cmd como administrador:

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

Para generar un cmd SYSTEM, entonces pip install mitmproxy

;)

aDoN
fuente
-1

Simplemente cierre todos los archivos de Python abiertos. E intenta ejecutar como administrador. Funcionará.

p.ej

pip install numpy
Faizan Amin
fuente