2017-07-10 6 views
1

Ich habe ursprünglich Cython und Kivy auf Mac ohne ein virtualenv installiert, aber beschlossen, ein virtualenv in meinem Projekt nach der Tat zu erstellen. Ich habe Cython und Kivy deinstalliert, dann neu installiert (ohne sudo) beides mit meinem virtualenv aktiv.'Kein Modul namens Kivy' wenn virtualenv aktiv ist?

Wenn ich 'pip freeze' ausführen listet es kivy auf, aber wenn ich versuche, meinen Code auszuführen, gibt es den Fehler zurück: 'ImportError: Kein Modul namens kivy.' Wenn ich meinen virtualenv deaktiviere läuft das Programm einwandfrei.

Ich glaube, ich stieß auf ein ähnliches Problem, als ich zuerst Django lernte. Könnte mich jemand aufklären, was das verursacht? Ich weiß, ich vermisse etwas Grundlegendes über Module und virtualenv.

Auch, wo würde ich die kivy Installation finden, sowohl innerhalb als auch außerhalb eines virtualenv? Wo installiert Pip es? Nach meinem Verständnis ist das, was ich frage, nicht einzigartig für Kivy.

Vielen Dank im Voraus für die Einsicht!

nur das erste Beispiel app Kivy Verwendung gibt:

import kivy 
kivy.require('1.0.6') # replace with your current kivy version ! 

from kivy.app import App 
from kivy.uix.label import Label 


class MyApp(App): 

    def build(self): 
     return Label(text='Hello world') 


if __name__ == '__main__': 
    MyApp().run() 
+0

Welchen Befehl verwenden Sie zum Ausführen und welche Python-Version verwenden Sie?/ –

+0

Sie können kivy importieren und kivy .__ file__ drucken, um zu sehen, wo es installiert ist. – Tshirtman

+0

Python 2 und nur Python main.py vom Terminal ausgeführt. Import kivy hat nicht funktioniert. Im Moment benutze ich nur globale Pakete, aber das ist natürlich keine Lösung. –

Antwort

0

pip freeze zeigt sowohl globale als auch lokale Pakete; Sie haben Kivy als globales Paket installiert, aber innerhalb einer virtuellen Umgebung sind nur lokale Pakete für Python verfügbar.

Entweder Kivy in der virtuellen Umgebung installieren (pip install nach Venv Aktivierung) oder dem Zugang zu den globalen Paketen ermöglichen (neu Venv mit Option --system-site-packages oder Befehl toggleglobalsitepackages von virtualenvwrapper verwenden).

+0

Danke, ich habe nicht wirklich verstanden, wie globale Pakete mit virtualenvs gemischt wurden. Ich werde als beste Antwort wählen, wenn ich etwas versuche. –