tengo saber que programa instalar ejecutar desde cómo consola compilar como archivos python version

saber - ejecutar.py desde consola python



¿Cómo verifico qué versión de Python está ejecutando mi script? (18)

¿Cómo puedo comprobar qué versión del intérprete de Python está interpretando mi script?


La forma mas sencilla

Simplemente escriba python en su terminal y podrá ver la versión como la siguiente

desktop:~$ python Python 2.7.6 (default, Jun 22 2015, 18:00:18) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>


Si quieres detectar pre-Python 3 y no quieres importar nada ...

... puede (ab) usar los cambios en el alcance de la comprensión de lista y hacerlo en una sola expresión :

is_python_3_or_above = (lambda x: [x for x in [False]] and None or x)(True)


Aquí hay una versión corta de la línea de comandos que sale de inmediato (útil para scripts y ejecución automatizada):

python -c "print(__import__(''sys'').version)"

O simplemente el mayor, el menor y el micro:

python -c "print(__import__(''sys'').version_info[:1])" # (2,) python -c "print(__import__(''sys'').version_info[:2])" # (2, 7) python -c "print(__import__(''sys'').version_info[:3])" # (2, 7, 6)


Como dijo Seth, la secuencia de comandos principal podría verificar sys.version_info (pero tenga en cuenta que no apareció hasta la versión 2.0, por lo que si desea admitir versiones anteriores, deberá verificar otra propiedad de la versión del módulo sys).

Pero aún debe tener cuidado de no usar ninguna característica del lenguaje Python en el archivo que no esté disponible en versiones anteriores de Python. Por ejemplo, esto está permitido en Python 2.5 y versiones posteriores:

try: pass except: pass finally: pass

pero no funcionará en versiones antiguas de Python, porque solo podría tener excepto O finalmente hacer coincidir el intento. Entonces, para la compatibilidad con versiones antiguas de Python, necesitas escribir:

try: try: pass except: pass finally: pass


Con six módulos, puedes hacerlo por:

import six if six.PY2: # this is python2.x else: # six.PY3 # this is python3.x


Desde la línea de comando (note la ''V'' mayúscula):

python -V

Esto está documentado en ''hombre pitón''.


Esta información está disponible en la cadena sys.version en el módulo sys :

>>> import sys

Legible para humanos:

>>> print (sys.version) #parentheses necessary in python 3. 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]

Para su posterior procesamiento:

>>> sys.version_info (2, 5, 2, ''final'', 0) # or >>> sys.hexversion 34014192

Para garantizar que un script se ejecute con un requisito de versión mínima del intérprete de Python, agregue esto a su código:

assert sys.version_info >= (2,5)

Esto compara información de versión mayor y menor. Agregue micro (= 0 , 1 , etc.) e incluso releaselevel (= ''alpha'' , ''final'' , etc.) a la tupla que desee. Sin embargo, tenga en cuenta que casi siempre es mejor "agacharse" para verificar si existe una determinada característica y, de no ser así, una solución alternativa (o un rescate). A veces, las características desaparecen en nuevas versiones, y son reemplazadas por otras




Pon algo como:

#!/usr/bin/env/python import sys if sys.version_info<(2,6,0): sys.stderr.write("You need python 2.6 or later to run this script/n") exit(1)

en la parte superior de su guión.

Tenga en cuenta que dependiendo de lo que haya en su script, las versiones más antiguas de python que el destino pueden no ser capaces incluso de cargar el script, por lo que no obtendremos lo suficiente como para informar este error. Como solución alternativa, puede ejecutar lo anterior en un script que importe el script con el código más moderno.


Si está trabajando en Linux, solo dé el comando python salida será así

Python 2.4.3 (# 1, 11 de junio de 2009, 14:09:37)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] en linux2

Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.


Solo por diversión, la siguiente es una forma de hacerlo en CPython 1.0-3.7b2, Pypy, Jython y Micropython. Esto es más una curiosidad que una forma de hacerlo en código moderno. Lo escribí como parte de http://stromberg.dnsalias.org/~strombrg/pythons/ , que es un script para probar un fragmento de código en muchas versiones de python a la vez, para que puedas sentir fácilmente lo que python Las características son compatibles con qué versiones de python:

via_platform = 0 check_sys = 0 via_sys_version_info = 0 via_sys_version = 0 test_sys = 0 try: import platform except (ImportError, NameError): # We have no platform module - try to get the info via the sys module check_sys = 1 if not check_sys: if hasattr(platform, "python_version"): via_platform = 1 else: check_sys = 1 if check_sys: try: import sys test_sys = 1 except (ImportError, NameError): # just let via_sys_version_info and via_sys_version remain False - we have no sys module pass if test_sys: if hasattr(sys, "version_info"): via_sys_version_info = 1 elif hasattr(sys, "version"): via_sys_version = 1 else: # just let via_sys remain False pass if via_platform: # This gives pretty good info, but is not available in older interpreters. Also, micropython has a # platform module that does not really contain anything. print(platform.python_version()) elif via_sys_version_info: # This is compatible with some older interpreters, but does not give quite as much info. print("%s.%s.%s" % sys.version_info[:3]) elif via_sys_version: import string # This is compatible with some older interpreters, but does not give quite as much info. verbose_version = sys.version version_list = string.split(verbose_version) print(version_list[0]) else: print("unknown")


Tu mejor apuesta es probablemente algo así:

>>> import sys >>> sys.version_info (2, 6, 4, ''final'', 0) >>> if not sys.version_info[:2] == (2, 6): ... print "Error, I need python 2.6" ... else: ... from my_module import twoPointSixCode >>>

Además, siempre puede ajustar sus importaciones en un intento simple, que debería detectar errores de sintaxis. Y, para el punto de Heikki, este código será compatible con versiones mucho más antiguas de python:

>>> try: ... from my_module import twoPointSixCode ... except Exception: ... print "can''t import, probably because your python is too old!" >>>


Utilice python_version de la platform desde el stdlib:

>>> from platform import python_version >>> print(python_version()) 2.7.8


Varias respuestas ya sugieren cómo consultar la versión actual de python. Para verificar mediante programación los requisitos de la versión, utilizaría uno de los dos métodos siguientes:

# Method 1: (see krawyoti''s answer) import sys assert(sys.version_info >= (2,6)) # Method 2: import platform from distutils.version import StrictVersion assert(StrictVersion(platform.python_version()) >= "2.6")


Verifique la versión de Python: python -V o python --version o apt-cache policy python

También puede ejecutar whereis python para ver cuántas versiones están instaladas.


sys.version_info no parece devolver una tuple partir de 3.7. Más bien, devuelve una clase especial, por lo que todos los ejemplos que usan tuplas no funcionan, al menos para mí. Aquí está la salida de una consola de python:

>>> import sys >>> type(sys.version_info) <class ''sys.version_info''>

He encontrado que usar una combinación de sys.version_info.major y sys.version_info.minor parece ser suficiente. Por ejemplo,...

import sys if sys.version_info.major > 3: print(''Upgrade to Python 3'') exit(1)

comprueba si estás ejecutando Python 3. Incluso puedes buscar versiones más específicas con ...

import sys ver = sys.version_info if ver.major > 2: if ver.major == 3 and ver.minor <= 4: print(''Upgrade to Python 3.5'') exit(1)

Puede comprobar si está ejecutando al menos Python 3.5.


import sys sys.version.split('' '')[0]

sys.version te da lo que quieres, solo elige el primer número :)