paquetes - ¿Cómo usar python 3 como un script de compilación en una configuración de travis que no sea python?
instalar python (3)
Estoy tratando de usar Travis CI en una biblioteca de C que usa scripts de construcción personalizados basados en python3.
Cuando se construye el repositorio, falla en ./configure
porque configure usa Python 3, que no está instalado de forma predeterminada.
Si estuviera construyendo un proyecto de Python, usaría esto en mi .travis.yml
:
python:
- "3.4"
Sin embargo, esto no parece afectar a mi repositorio porque está en C. (Intenté ejecutar which python3
y python --version
, que informaron que Python 3 no existía y que Python 2.7 estaba en uso en su lugar).
El script de compilación que probé:
language: c
python:
- "3.4"
¿Cómo puedo tener Python 3 disponible en Travis CI cuando mi proyecto no es un proyecto de Python?
Debería poder instalar los paquetes necesarios de python3 agregando una sección before_install:
de su .travis.yml
:
before_install:
- sudo apt-get update
- sudo apt-get install python3
La respuesta de mfussenegger es la forma recomendada de instalar cosas hoy en día, sin embargo, los paquetes de deadsnakes
no proporcionan enlaces para python3
, al parecer, solo para python3.*
. Lo usaría si necesita una versión reciente de python 3. Travis actual se basa en Ubuntu LTS 12.04, que viene con Python 3.2, que es suficiente para la mayoría de los propósitos de scripting.
python 3.*
es un problema al activar un script con un shebang, donde no podemos incluir verificaciones de nombres arbitrarios. Es por eso que probablemente aún quieras el paquete python3
, como en la respuesta de Eric Appelts:
addons:
apt:
packages:
- python3
Si desea utilizar la infraestructura basada en contenedores, puede hacer uso del complemento apt :
addons:
apt:
sources:
- deadsnakes # source required so it finds the package definition below
packages:
- python3.5
Los paquetes que se pueden utilizar se enumeran aquí
Actualizar
Para utilizar dependencias con extensiones c como psycopg2 o pyYAML, también es necesario agregar python3.4-dev