Как использовать python 3 в качестве скрипта сборки в конфигурации не-python travis?

Я пытаюсь использовать Travis CI в библиотеке C, которая использует собственные скрипты сборки на основе python3.

Когда репозиторий создается, он не работает ./configure потому что configure использует Python 3, который по умолчанию не установлен.

Если бы я строил проект Python, я бы использовал его в моем .travis.yml:

python:
  - "3.4"

Однако это не влияет на мой репозиторий, потому что он находится на C. (Я попытался запустить which python3 и python --version, который сообщил, что python 3 не существует, и вместо этого использовался python 2.7).

Сценарий сборки, который я пробовал:

language: c

python:
  - "3.4"

Как я могу использовать Python 3 в Travis CI, когда мой проект не является проектом Python?

Ответ 1

Вы должны иметь возможность просто установить необходимые пакеты Python3 путем добавления before_install: часть вашей .travis.yml:

before_install:
- sudo apt-get update
- sudo apt-get install python3

Ответ 2

Если вы хотите использовать инфраструктуру на основе контейнера, вы можете использовать apt addon:

addons:
  apt:
    sources:
      - deadsnakes # source required so it finds the package definition below
    packages:
      - python3.5

Здесь перечислены пакеты, которые можно использовать.

Обновить

Чтобы использовать зависимости с c-расширениями, такими как psycopg2 или pyYAML, также необходимо добавить python3.4-dev

Ответ 3

Ответ mfussenegger - рекомендуемый способ установить материал в наши дни, однако пакеты deadsnakes не предоставляют ссылки для python3 похоже, только для python3.*. Вы бы использовали его, если вам нужна последняя версия python 3. Текущий travis построен на Ubuntu LTS 12.04, который поставляется с python 3.2, чего достаточно для большинства сценариев.

python 3.* - проблема при запуске скрипта с помощью shebang, где мы не можем включать произвольные проверки имени. Вот почему вы, вероятно, все еще хотите пакет python3, как в Eric Appelts:

addons:
  apt:
    packages:
      - python3