Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Travis/conda : No module named setuptools

+1 vote

J'utilise conda pour installer numpy, scipy et matplotlib avec TravisCI et il me dit ImportError: No module named setuptools quand je fais mon python setup.py install. Pourtant, je fais bien un pip install setuptools avant et il me dit Requirement already satisfied. Le build est ici.

Mon .travis.yml :

language: python

matrix:
  include:
    - python: 2.7
      env: NUMPY=1.9 SCIPY=0.15
    - python: 3.4
      env: NUMPY=1.9 SCIPY=0.15

before_install:
  - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh
  - chmod +x miniconda.sh
  - ./miniconda.sh -b
  - export PATH=/home/travis/miniconda/bin:$PATH
  - conda update --yes conda

install:
  - conda install --yes numpy=$NUMPY scipy=$SCIPY matplotlib
  - pip install setuptools
  - pip install -r numpy-scipy-matplotlib_conda/requirements.txt
  - python numpy-scipy-matplotlib_conda/setup.py install

script: 
    - python numpy-scipy-matplotlib_conda/test.py

Ce qui est étrange, c'est qe cette configuration fonctionne (le build ne passe pas, mais c'est au niveau des tests ; l'installation se fait correctement) :

language: python

matrix:
  include:
    - python: 3.4
      env: NUMPY=1.9 SCIPY=0.15

before_install:
  - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh
  - chmod +x miniconda.sh
  - ./miniconda.sh -b
  - export PATH=/home/travis/miniconda/bin:$PATH
  - conda update --yes conda

install:
  - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION
  - source activate test
  - conda install --yes numpy=$NUMPY scipy=$SCIPY matplotlib pip
  - pip install setuptools
  - pip install -r requirements-dev.txt

script: 
  - python setup.py test

La différence provient des lignes suivantes, mais je ne comprends pas en quoi ça pose problème :

  - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION
  - source activate test
demandé 8-Fev-2015 par Vayel (1,050 points)

Je ne connais pas Travis mais on dirait que la commande conda produit un simili virtualenv qui lui est dénué de setuptools . je n'ai pas la raison du pourquoi du comment mais c'est le ressenti que j'ai

En effet, il semble nécessaire de créer un env pour installer des trucs. Je pensais que conda jouait le même rôle que pip.

1 Réponse

+2 votes
 
Meilleure réponse

Il faut créer un env puis installer setuptools :

.travis.yml
setup.py
test.py
package/
    __init__.py
    main.py

.travis.yml :

language: python

matrix:
  include:
    - python: 2.7
      env: NUMPY=1.9 SCIPY=0.15
    - python: 3.4
      env: NUMPY=1.9 SCIPY=0.15

before_install:
  - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh
  - chmod +x miniconda.sh
  - ./miniconda.sh -b
  - export PATH=/home/travis/miniconda/bin:$PATH
  - conda update --yes conda

install:
  - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION
  - source activate test
  - conda install --yes numpy=$NUMPY scipy=$SCIPY matplotlib pip
  - pip install setuptools
  - python setup.py install

script: 
  - python test.py

setup.py :

from setuptools import setup

import package

setup(
    name="package",
    packages=["package"],
)

test.py :

import package.main

package/main.py :

import numpy
import scipy
import matplotlib

Ce build fonctionne.

répondu 8-Fev-2015 par Vayel (1,050 points)
edité 8-Fev-2015 par Vayel

Dommage que tu ne m'aies pas permis de mettre une réponse pour me la valider puisque mon commentaire t'avais donné la solution.

En tout cas tant mieux que ça ne soit que ça et que ça marche.

J'explorais déjà cette piste. Je faisais juste des builds pour vérifier. Mais pardon quand même. =/

Pas de PB, seul le résulte compte ;)

...