2015-10-12 19 views
5

Sto provando a utilizzare Travis CI per eseguire test del mio codice Python.Come far installare il modulo Python tramite apt?

Il mio progetto richiede il modulo dbus e non è disponibile in PyPi, quindi devo installarlo tramite apt.

Il problema è che i test falliscono con ImportError: nessun modulo chiamato 'dbus'. È piuttosto strano, perché posso vedere in relazione la corretta installazione dei pacchetti richiesti. Ecco il mio .travis.yml e l'esempio di Travis log.

Devo fare qualcosa di sbagliato?

+0

Questo è interessante. Sai cosa sto sospettando? È solo un sospetto. Travis sta configurando un virtualenv e apt-get si sta installando al di fuori del virtualenv. Quindi non vedrà mai il tuo pacco. – idjaw

+0

Ma. Sono sicuro che ci sia una soluzione a questo se questo è il caso. Io uso Travis. Fammi vedere qualcosa. :) – idjaw

risposta

2

Dal travis log postato, tutti i pacchetti vengono installati in un ambiente virtuale.

L'ambiente virtuale è creato in uno stato pulito - in modo da non avere alcun legame con librerie di sistema, anzi si afferma così nel documentation:

CI Environment uses separate virtualenv instances for each Python version. System Python is not used and should not be relied on. If you need to install Python packages, do it via pip and not apt.

If you decide to use apt anyway, note that Python system packages only include Python 2.7 libraries on Ubuntu 12.04 LTS. This means that the packages installed from the repositories are not available in other virtualenvs even if you use the –system-site-packages option.

Credo che spiega il problema:

  1. Gli ambienti virtuali sono isolati e non dispongono di collegamenti ai pacchetti di sistema.
  2. Anche se si utilizza apt, è limitato a Python 2.7 e si sta tentando di installare un pacchetto python3-.