Wie füge ich mein Modul zu travis-ci pythonpath hinzu

9

Ich richte Travis-CI für mein Projekt ein, und seltsamerweise kann ich mein Projekt nicht importieren:

%Vor%

In der Produktion erzeuge ich einfach einen Symlink wie folgt:

%Vor%

Aber ich weiß nicht - oder möchte wirklich wissen - Travis-CI's Ordnerstruktur.

Das scheint ein gelöstes Problem zu sein, aber ich bin neu bei Travis-CI. Was ist der beste Weg, um dies zu erreichen, so dass mein Code als ein importierbares Modul hinzugefügt wird?

    
mlissner 10.09.2014, 01:48
quelle

5 Antworten

14
  

Was ist der beste Weg, um dies zu erreichen, so dass mein Code als ein importierbares Modul hinzugefügt wird?

Die Antwort lautet eindeutig: distutils (und definitiv nicht ln ).

  

In der Produktion erstelle ich einfach einen Symlink ...

B-b-aber warum? Die Komplexität, es richtig zu machen, ist so gering! Es passt sogar in ein paar Zeilen:

Aus Das Feinhandbuch - erstellen Sie einfach ein setup.py wie folgt:

%Vor%

Jetzt können Sie fantastische Dinge wie python setup.py install , python setup.py bdist_rpm oder pip install . tun - und nicht nur in der Travis-Umgebung, sondern für Ihr Projekt im Allgemeinen.

    
Brian Cain 23.11.2014, 16:44
quelle
6

Um schnell zu sein, können Sie das Problem eleganter lösen, indem Sie der Stufe before_script Folgendes hinzufügen:

%Vor%

Der bessere Weg (aber mit etwas mehr Aufwand) ist, was Brian Cain vorgeschlagen hat, nämlich eine setup.py -Datei schreiben und pip install . zur install -Stufe hinzufügen.

Oder wenn Sie ein Makefile verwenden, können Sie einen Befehl haben, der es wie folgt ausführt.

%Vor%     
Hui Zheng 23.11.2014 16:40
quelle
1

Das ist sicherlich nicht optimal, aber es hat funktioniert. In meiner Datei .travis.yml habe ich dem Attribut install folgende Zeile hinzugefügt:

%Vor%

Dies findet im Grunde das Verzeichnis, in dem Python installiert ist und fügt dann my_module als Symlink hinzu. Freut mich, eine bessere Antwort zu hören, denn diese fühlt sich sehr zerbrechlich an.

Update : Sehen Sie die Antwort von @Brian Cain für eine viel bessere Lösung.

    
mlissner 10.09.2014 05:02
quelle
1

In Ergänzung der @ Brian-Cain-Antwort können Sie auch setuptools anstelle von distutils verwenden. Zum Zeitpunkt des Schreibens wird distutils auslaufen und setuptools wird als Ersatz verwendet, obwohl sich setuptools noch nicht in der Standardbibliothek befindet.

%Vor%

Für ein kurzes Tutorial zum Erstellen eines setup.py mit setuptools : Ссылка

Für ein schnelles Beispiel: Ссылка

    
bizi 02.10.2017 06:59
quelle
0

Es ist wahrscheinlicher, dass /home/travis/.local/lib/python2.7/site-packages/ zu PYTHONPATH in before_script mit export PYTHONPATH=$PYTHONPATH:/home/travis/.local/lib/python2.7/site-packages/ hinzugefügt werden muss.

    
Karl Richter 26.12.2016 22:19
quelle

Tags und Links