Erweiterung laden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Googlumu
User
Beiträge: 1
Registriert: Dienstag 2. April 2019, 21:06

Hallo,

ich bin blutiger Anfänger was das Programmieren in Python angeht. Habe bis jetzt fast ausschließlich mit PHP zu tun gehabt. Also bitte ich um Rücksicht :D

Auf einem Manages-Server läuft eine Website. Auf diesem Server möchte ich jetzt gern ein bisschen mit Python experimentieren.

Es geht um das Modul „pymemcache“. Ich habe es via „pip install pymemcache“ installiert.

Der Befehl „pip list“ zeigt das Programm auch an. Mit „pip show“ sehe ich, dass das Programm im Ordner „/.local/lib/python2.7/site-packages“ liegt.

Wenn ich jetzt in meiner Python-Datei im Arbeitsverzeichnis den Befehl „from pymemcache.client import base“ einfüge, bekomme ich den Fehler "ImportError: No module named pymemcache.client“.

Ich kann nachvollziehen, dass ich in einem völlig anderem Verzeichnis arbeite, als die Erweiterung liegt. Aber wie kann ich die Erweiterung trotzdem laden? Oder kann ich die innerhalb meines Arbeitsverzeichnisses installieren?

Ich habe es schon folgendermaßen versucht:
import sys
sys.path.insert(0, „/.local/lib/python2.7/site-packages“)

In dem Ordner liegen dann auch alle Unterordner zur pymemcache Erweiterung. Ich habe schon alle möglichen Unterordner an den Pfad angefügt. Die Fehlermeldung war leider immer die selbe.

Kann mir jemand sagen was genau ich falsch mache und was ich machen muss, damit es funktioniert?

Danke & Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 14040
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich glaube ja nicht, dass das wirklich in `/.local/lib/python2.7/site-packages` liegt. Das wird wohl eher in Deinem Heimatverzeichnis in `.local/lib/python2.7/site-packages` liegen.

Als nächstes wäre dann die Frage welcher Benutzer das versucht auszuführen. Wirklich “Du“, oder der Benutzer unter dem der Webserver läuft? Das ist so wie es jetzt ist, nur für den Benutzer installiert der den ``pip``-Befehl ausgeführt hat. Für keinen anderen Benutzer.

Last but not least, solltest Du Dich vielleicht mit „virtual environments“ beschäftigen, also ``virtualenv`` bzw. ``venv`` oder vielleicht auch gleich mit ``pipenv`` was ``pip`` und „virtual environments“ unter einem Werkzeug zusammen bringt.

Noch wichtiger wäre vielleicht auch das alles mit Python 3 zu machen. Bei Python 2 läuft am Ende dieses Jahres der Support aus, das heisst es wird weder Bugfixes noch Security Updates mehr geben. Letzteres ist auf einem Server ziemlich kritisch.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten