2015-10-12 6 views
5

Ich versuche Travis CI zu verwenden, um Tests meines Python-Codes auszuführen.Wie macht man Python sehen Modul über apt installiert?

Mein Projekt benötigt dbus-Modul und es ist nicht in PyPi verfügbar, also muss ich es über apt installieren.

Problem ist, dass Tests mit ImportError fehlschlagen: Kein Modul namens 'dbus'. Es ist ziemlich seltsam, weil ich im Bericht über erfolgreiche Installation der erforderlichen Pakete sehen kann. Hier ist meine .travis.yml und Beispiel Travis log.

Mache ich etwas falsch?

+0

Das ist interessant. Weißt du was ich vermute? Es ist nur ein Verdacht. Travis baut ein virtualenv auf und dein apt-get installiert außerhalb des virtualenv. So wird es dein Paket nie sehen. – idjaw

+0

Aber. Ich bin sicher, dass es eine Lösung dafür gibt, wenn das der Fall ist. Ich benutze Travis. Lass mich etwas sehen. :) – idjaw

Antwort

2

Vom Travis-Protokoll, das Sie gepostet haben, werden alle Ihre Pakete in einer virtuellen Umgebung installiert.

Die virtuelle Umgebung in einem sauberen Zustand geschaffen wird - so es hat keine Links zu Systembibliotheken, in die Tat heißt es so in den 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.

ich es erklärt Ihr Problem glauben:

  1. virtuelle Umgebungen sind isoliert und haben keine Verbindung zu Systempaketen.
  2. Auch wenn Sie apt verwenden, ist es beschränkt auf Python 2.7, und Sie versuchen, ein python3--Paket zu installieren.
Verwandte Themen