Estoy ejecutando Windows 10, completamente actualizado, y Python 3.7.
Puedo ver el contenido de c:\Windows\System32\OpenSSH a través de cmd y PowerShell, y puedo ejecutar el comando ssh normalmente.
Sin embargo, si inicio un proceso de Python, este archivo no es visible y os.path.exists("c:\\Windows\\System32\\OpenSSH")
devuelve False
. Si luego inicio una instancia de cmd o Powershell en un subproceso, ese directorio no es visible.
Estoy intentando utilizar Pipenv, una herramienta de gestión de dependencias de Python, que creará una instancia de un nuevo shell con el entorno correcto como parte de su gestión de procesos.
Esto da como resultado comportamientos como:
C:\Users\micro>dir c:\Windows\System32\OpenSSH\ssh.exe
Volume in drive C is OS
Volume Serial Number is AEDD-9508
Directory of c:\Windows\System32\OpenSSH
28/09/2017 15:49 851,456 ssh.exe
1 File(s) 851,456 bytes
0 Dir(s) 175,094,468,608 bytes free
C:\Users\micro>pipenv run dir c:\Windows\System32\OpenSSH\ssh.exe
The system cannot find the file specified.
C:\Users\micro>
He consultado con otros usuarios y no tienen este problema.
Me aseguré de que todas las actualizaciones se apliquen a Windows e intenté eliminar y volver a agregar la función OpenSSH.
Si alguien tiene alguna pista sobre qué información sería útil para depurar esto, me encantaría escucharla.
Respuesta1
Tuve exactamente el mismo problema y encontré la solución en este hilo: https://stackoverflow.com/questions/41630224/python-does-not-find-system32
Windows realmente está buscando en SysWOW64; mi código para arreglar esto fue
system32 = os.path.join(os.environ['SystemRoot'], 'SysNative' if
platform.architecture()[0] == '32bit' else 'System32')
listtest_path = os.path.join(system32, 'openSSH', 'ssh-keygen.exe')
subprocess.call([listtest_path])