Quiero saber dónde está la ruta de instalación de Python. Por ejemplo:¿Cómo puedo obtener la ruta de Python en Windows?
C: \ Python25
¿Cómo puedo obtener la ruta de instalación de Python?
Quiero saber dónde está la ruta de instalación de Python. Por ejemplo:¿Cómo puedo obtener la ruta de Python en Windows?
C: \ Python25
¿Cómo puedo obtener la ruta de instalación de Python?
>>> import os
>>> import sys
>>> os.path.dirname(sys.executable)
'C:\\Python25'
En el paquete sys
, se puede encontrar una gran cantidad de información útil acerca de la instalación:
import sys
print sys.executable
print sys.exec_prefix
No estoy seguro de lo que esto le dará en su sistema Windows, pero en mi Mac executable
puntos a la Python binary y exec_prefix
a la raíz de la instalación.
También podría intentar esto para la inspección de su módulo sys
:
import sys
for k,v in sys.__dict__.items():
if not callable(v):
print "%20s: %s" % (k,repr(v))
@GuoH podemos hacer lo mismo con el archivo por lotes? – Patrick
Podría hacer algo como 'python -c 'import sys; print sys.executable" ' –
En mi instalación de ventanas, consigo estos resultados:
>>> import sys
>>> sys.executable
'C:\\Python26\\python.exe'
>>> sys.platform
'win32'
>>>
(También puede buscar en sys.path
para lugares razonables.)
pero ¿cómo podemos hacer lo mismo usando un archivo por lotes? – Patrick
Si necesita conocer el archivo instalado bajo Windows sin al iniciar el intérprete de Python, eche un vistazo al registro de Windows.
Cada versión de Python instalado tendrá una clave de registro, ya sea en:
HKLM\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
HKCU\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
En Windows de 64 bits, que estará bajo la clave Wow6432Node
:
HKLM\SOFTWARE\Wow6432Node\Python\PythonCore\versionnumber\InstallPath
esto parece ser falso en Windows 7, al menos para python 2.7 – sharkin
¿Dónde está la información ubicada en Windows 7? Si tiene una computadora con Windows 7 a mano, ¿podría hacer una búsqueda de registro para Python y PythonCore? Y vea si encuentra un valor de InstallPath en alguna parte. – codeape
En las versiones de 64 bits de Windows (que probablemente esté utilizando) estará bajo la clave Wow6432Node, IE HKLM \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ versionnumber \ InstallPath –
Si alguien tiene que hacer esto en C# que estoy usando el siguiente código:
static string GetPythonExecutablePath(int major = 3)
{
var software = "SOFTWARE";
var key = Registry.CurrentUser.OpenSubKey(software);
if (key == null)
key = Registry.LocalMachine.OpenSubKey(software);
if (key == null)
return null;
var pythonCoreKey = key.OpenSubKey(@"Python\PythonCore");
if (pythonCoreKey == null)
pythonCoreKey = key.OpenSubKey(@"Wow6432Node\Python\PythonCore");
if (pythonCoreKey == null)
return null;
var pythonVersionRegex = new Regex("^" + major + @"\.(\d+)-(\d+)$");
var targetVersion = pythonCoreKey.GetSubKeyNames().
Select(n => pythonVersionRegex.Match(n)).
Where(m => m.Success).
OrderByDescending(m => int.Parse(m.Groups[1].Value)).
ThenByDescending(m => int.Parse(m.Groups[2].Value)).
Select(m => m.Groups[0].Value).First();
var installPathKey = pythonCoreKey.OpenSubKey(targetVersion + @"\InstallPath");
if (installPathKey == null)
return null;
return (string)installPathKey.GetValue("ExecutablePath");
}
Si tiene pitón en la variable de entorno por lo que también puede utilizar el comando escriba cmd como
>>> where python
sería cualquiera de
my path of python 3.6 en win10: 'C: \ Users \ YANG.LEI \ AppData \ Local \ Programs \ Python \ Python36-32' –
correcto para python 3 – danday74
¿Qué pasa si estás dentro de un virtualenv? Esto no funcionará entonces. – user60561
@ user60561 Debe darle la ruta al ejecutable Python de Virtualenv. No conozco una manera de obtener el pitón OS, en ese caso, pero me gustaría saber por qué lo necesitarías si estuvieras corriendo desde Virtualenv. – elo80ka
Mi script crea un virtualenv, por lo que usa el sistema python para hacer eso. Sin embargo, me has hecho pensar, tal vez eso no sea necesario ... Lo verificaré el lunes, ¡gracias! – user60561