requisitos.txt dependiendo de la versión de python

Estoy tratando de portar un paquete python2 a python3 (no el mío) usando seis para que sea compatible con ambos. Sin embargo, uno de los paquetes enumerados en Requirements.txt ahora se incluye en Python3 stdlib y la versión pypi no funciona en python3, así que quiero excluirlo condicionalmente. Hacer esto en setup.py es fácil, solo puedo hacer algo como:

if sys.version_info[0] == 2: requirements += py2_requirements else: requirements += py3_requirements 

Pero me gustaría requisitos.txt para reflejar la lista correcta también. No puedo encontrar nada sobre esto en la documentación del pip. Entonces, ¿alguien sabe cómo hacerlo, o si es posible?

Related of "requisitos.txt dependiendo de la versión de python"

Puede usar los marcadores de entorno para lograr esto en pip 6.0 desde pip 6.0 :

 SomeProject==5.4; python_version < '2.7' SomeProject; sys_platform == 'win32' 

También es compatible con setuptools declarando requisitos adicionales en setup.py :

 setup( ... install_requires=[ 'six', 'humanize', ], extras_require={ ':python_version == "2.7"': [ 'ipaddress', ], }, ) 

Vea también los especificadores de requisitos . Y cadenas para las versiones de cadena de los comandos de Python correspondientes.

Puede crear múltiples archivos de requisitos, colocar esos paquetes comunes en un archivo común e incluirlos en otro archivo de requisitos de pip con -r file_path

 requirements/ base.txt python2.txt python3.txt 

python2.txt

 -r base.txt Django==1.4 #python2 only packages 

python3.txt

 -r base.txt Django==1.5 #python3 only packages 

pip install -r Requirements / python2.txt

No creo que sea posible porque el archivo Requirements.txt es solo un archivo de texto. Lo más cercano que puedo pensar sería en comentar el paquete en Requirements.txt con un comentario anterior que indica que debe instalarse para Python2.6. ¿Tal vez valdría la pena agregar algún código para verificar la versión de python?

 import sys if sys.version_info.major == 2: try: import blah except ImportError: sys.stderr.write("Yo, pip install blah") sys.exit(1)