py.test: ImportError: Kein Modul namens mysql

8

Ich habe Probleme beim Ausführen von py.test über Pakete, die mysql importieren. Das Paket mysql wurde mit pip in einem virtualenv installiert.

%Vor%

Ich kann ohne Probleme laufen python test_mysql.py , aber wenn ich py.test test_mysql.py führe, bekomme ich:

%Vor%

Irgendeine Idee, was ist das Problem?

    
memecs 15.02.2014, 16:47
quelle

2 Antworten

15

Es sieht so aus, als ob Sie die systemweite Version von py.test verwenden, die eine nicht-virtualenv-Version von Python verwendet. (In dem das mysql -Paket nicht installiert ist).

Installiere py.test in den virtualenv, dann wird dein Problem gelöst.

SEITENHINWEIS

Um sicherzustellen, dass Sie das neu installierte py.test verwenden, löschen Sie den von der Shell verwendeten Befehlspfad-Cache.

Geben Sie beispielsweise den folgenden Befehl aus, wenn Sie bash verwenden:

%Vor%     
falsetru 15.02.2014, 17:11
quelle
0

Sie finden vielleicht, dass @ falsetrus Antwort nicht funktioniert, wenn Sie pytest systemweit installiert haben, NACHDEM Sie in der virtualenv installiert haben, wie ich es getan habe.

(Schnelle Anmerkung: py.test ist die alte Version des Befehls, pytest ist der empfohlene Weg, aber was für eins gilt, gilt für den anderen)

Sie können herausfinden, wo pytest geladen wird, indem Sie which pytest aufrufen.

Wie Sie sehen können, zeigt mein Pythe einen, der nicht im virtualenv ist:

%Vor%

Hier ist der Beweis, dass pytest IS im virtualenv installiert ist:

%Vor%

Und hash -r macht keinen Unterschied (da keine neue Installation stattgefunden hat):

%Vor%

Die Lösung ist, pytest im virtualenv zu deinstallieren und neu zu installieren,

%Vor%

Wenn Sie aus irgendeinem Grund nicht neu installieren können, können Sie dies tun, indem Sie pytest als Modul über den Python in Ihrem virtualenv aufrufen:

%Vor%     
andyhasit 07.11.2017 11:26
quelle

Tags und Links