Parece que una actualización de Windows 10 rompió Python de la noche a la mañana. Intentar ejecutar python --version
arrojó un error de "Permiso denegado". Ninguna de las tres actualizaciones; KB4507453, KB4506991 o KB4509096 parecen ser los culpables, pero el momento del problema es sospechoso. En lugar de jugar con retroceder, espero que haya una solución más simple que me falta.
Los permisos en Python son "-rwxr-xr-x" y no he cambiado nada más que dejar que la actualización de Windows reinicie la máquina después de instalar los parches de anoche.
Según la información del sistema, estoy ejecutando 10.0.18362
También debería tener en cuenta que esto está sucediendo si (intento) ejecutar Python desde git-bash usando "ejecutar como administrador" o no, y si intento usar PowerShell, simplemente abre la tienda de Windows como si la aplicación no estuviera instalada, así que Estoy pensando que no puede ver el contenido de mi /c/Users/david/AppData/Local/Microsoft/WindowsApps/
carpeta por alguna razón.
También intenté reinstalar Python 3.7.4, pero eso tampoco ayudó. ¿Hay algo más que deba mirar?
fuente
Respuestas:
Por lo que puedo decir, esto fue causado por un conflicto con la versión de Python 3.7 que se agregó recientemente a la Tienda Windows. Parece que esto agregó dos "stubs" llamados python.exe y python3.exe en la
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
carpeta, y en mi caso, esto se insertó antes de la entrada del ejecutable de Python existente en el archivoPATH
.Mover esta entrada debajo de la carpeta correcta de Python (parcialmente) corrigió el problema.
La segunda parte de corregirlo es escribir
manage app execution aliases
en el indicador de búsqueda de Windows y deshabilitar las versiones de la tienda de Python por completo.Es posible que solo necesite hacer la segunda parte, pero en mi sistema hice ambos cambios y ahora todo ha vuelto a la normalidad.
fuente
Investigación
Todos los archivos
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
son marcadores de posición que apuntan a archivos que se encuentran en algún lugarC:\Program Files\WindowsApps
, a los que se les niegan los permisos por completo.Parece que estaba en el camino correcto con mi declaración hecha en mi duplicado de este problema:
Fuente: No se puede instalar pylint en Git Bash en Windows (Tienda Windows)
Los permisos se estropean como la reina debido al método de distribución de WindowsApps:
Curiosamente, dice que el grupo "Usuarios" puede leer y ejecutar archivos, así como mi usuario específico, pero el grupo Administradores solo puede mostrar el contenido de la carpeta por alguna razón hilarantemente insondable. Y cuando intenta acceder a la carpeta en el Explorador de archivos, se niega incluso a mostrar el contenido de la carpeta, por lo que también hay algo sospechoso en eso.
Curiosamente, aunque la ejecución
python
en CMD funciona bien, la carpeta "WindowsApps" no aparece cuando se enumeran los archivos en el directorio en el que reside, e intentar navegar en la carpeta genera un error de "Permiso denegado":Intentar cambiar los permisos requiere cambiar el propietario primero, así que cambié el propietario al grupo Administradores. Después de eso, intenté cambiar los permisos para que el grupo Administradores incluyera Control total, pero no pude cambiar esto, porque "el acceso fue denegado" (duh, Micro $ ucks, ¡eso es lo que estamos tratando de cambiar!).
Este error de permiso ocurrió para tantos archivos que usé Alt + C para hacer clic rápidamente en "Continuar" en los mensajes repetidos, pero esto tomó demasiado tiempo, así que cancelé el proceso, lo que resultó en este mensaje de advertencia emergente:
Y ahora no puedo volver a configurar al usuario de TrustedInstaller como propietario de la carpeta WindowsApps, porque no aparece en la lista de Usuarios / Grupos / Principios de seguridad incorporados / Otros objetos. *
* En realidad, de acuerdo con este tutorial , puede volver a cambiar el propietario a TrustedInstaller escribiendo
NT Service\TrustedInstaller
en el cuadro de texto del nombre del objeto.Solución
No hay solución. Básicamente, estamos completamente jodidos. Movimiento elegante, Microsoft.
fuente
Esto parece ser una limitación en git-bash. La recomendación de usar
winpty python.exe
funcionó para mí. Consulte Python no funciona en la línea de comandos de git bash para obtener información adicional.fuente
Este problema es demasiado común para ser persistente. Y la mayoría de las respuestas e instrucciones no lo abordan. Esto es lo que debe hacer en Windows 10:
Escriba
environment variables
en la barra de búsqueda de inicio y abra Editar las variables de entorno del sistema .Haga clic en Variables de entorno ...
En la sección Variables del sistema, ubique la variable con la clave
Path
y haga doble clic en ella.Busque rutas que apunten a archivos de Python. Probablemente no hay ninguno. Si los hay, selecciónelos y elimínelos.
Cree una nueva variable establecida en la ruta de su ejecutable de Python. Normalmente esto es
C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38
. Asegúrese de esto comprobando a través de su Explorador de archivos.Nota : Si no puede ver
AppData
, es porque no ha habilitado la visualización de elementos ocultos : haga clic en la pestaña Ver y marque la casilla de verificación Elementos ocultos.Cree otra variable que apunte al
Scripts
directorio. Normalmente lo esC:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts
.Reiniciar el terminal y escribiendo intentarlo
py
,python
,python3
, opython.exe
.fuente
No es una solución con PowerShell, pero tuve el mismo problema excepto con MINGW64. Lo solucioné cambiando al Subsistema de Windows para Linux (que quería hacer de todos modos) como mi terminal, solo en general y en VSCode. Esta publicación lo describe bien:
Cómo configurar VS Code (windows) para usar la aplicación Ubuntu como terminal
En resumen:
1) Instale Ubuntu desde la tienda de aplicaciones de Windows
2) Cambie el bash predeterminado de CMD -> wslconfig / setdefault Ubuntu
--- Para VSCode
3) Reinicie VSCode
4) En VSCode, cambie "terminal.integrated.shell.windows" a "C: \ WINDOWS \ System32 \ bash.exe" (para obtener más detalles, consulte la publicación anterior)
Funcionando sin problemas ahora en VSCode y WSL (Bash en Ubuntu en Windows). Podría ser al menos una solución temporal para ti.
fuente
Agregar la ruta de Python local antes de que las aplicaciones de Windows resolvieran el problema.
fuente
Lo más sencillo sería modificar sus variables ambientales PATH y PYTHONPATH para asegurarse de que la carpeta que contiene los binarios de Python adecuados se busque antes de la carpeta local de WindowsApp. Puede acceder a las variables ambientales abriendo el panel de control y buscando "env"
fuente
Solución alternativa: si ha instalado Python desde exe, siga los pasos a continuación.
Paso 1: desinstalar Python
Paso 2: Instale Python y marque la casilla de verificación de la ruta de Python como se resalta en la siguiente captura de pantalla (amarillo).
Esto me solucionó el problema.
fuente
Puede intentar abrir el símbolo del sistema con privilegios de administrador. (Ejecutar como administrador). Funciona para mí la mayor parte del tiempo.
fuente
Ahorre tiempo: utilícelo
wsl and vscode remote extension
para trabajar correctamente con Python incluso con win10 y no lo olvidevirtualenv
. útil https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-18-04/fuente