Paketinstallation, Package Installation

Probleme bei der Installation?
Antworten
Peter-Gregor
User
Beiträge: 3
Registriert: Mittwoch 28. Januar 2015, 11:06
Wohnort: Taunus

Hallo,

ich bin recht neu in Python und tue mich generell mit der Orientierung "Wo bekomme ich welche Hilfe?" schwer. Es gibt so viele Seiten zu Python... Am liebsten hätte ich eine geschlossene Lösung, also alles aus einer Hand...

Vielleicht könnt' Ihr mir hier schon weiterhelfen (ein gutes Buch, eine gut erklärte web site...)?

Die Schwierigkeit, an der ich jetzt nage, ist die Paketinstallation (ich hab's bisher nicht hinbekommen auch nur ein Paket zu installieren :cry: ) unter Windows 7, 64 Bit.
Es gibt einen Befehl namens: "pip", soviel weiß ich schon :) Ist nicht sehr viel, gell? :?

Habe jetzt beispielsweise versucht das Paket pilkit 1.1.12 per pip-Befehl: C:\Python34>python -m pip search pilkit 1.1.12 zu suchen und gleich eine Ausnahme erhalten (da ist die Laune bei meiner ohnehin sehr niedrigen Frustrationstoleranz doch gleich im Keller... :cry: ). Ich möchte einfach, "daß es geht" ...

... und angenommen ich würde ein Paket so runterladen und dann lokal von meinem Rechner aus installieren (ich gehe davon aus, daß der Abbruch durch unsere Sicherheitsbeschränkungen zustande kam),
wo muß ich denn so ein Paket ablegen, daß ich es mit pip installieren kann? Welches Format muß es haben? Muß es bereits entpackt sein? Geht .tar, *.exe? :K

Exception:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
status = self.run(options, args)
File "C:\Python34\lib\site-packages\pip\commands\search.py", line 40, in run
pypi_hits = self.search(query, index_url)
File "C:\Python34\lib\site-packages\pip\commands\search.py", line 54, in searc
h
hits = pypi.search({'name': query, 'summary': query}, 'or')
.
.
.
.
.
File "C:\Python34\lib\socket.py", line 500, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] Ein Verbindungsversuch ist fehlgeschlagen, da die
Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder d
ie hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert
hat

Storing debug log for failure in C:\Users\...\pip\pip.log
BlackJack

@Peter-Gregor: Hat jetzt nichts mit der Fehlermeldung zu tun, aber das kann/sollte nicht das erste Paket sein welches Du installierst. Das möchte nämlich das vorher PIL oder Pillow (bei Python 3.x eher letzteres) installiert wurde. Und dafür solltest Du bei Windows schauen ob Du das irgendwoher fertig kompiliert bekommst, denn ``pip`` würde da wahrscheinlich C-Module übersetzen müssen, wofür noch weitere Abhängigkeiten vorher erfüllt sein müssten, mit denen man sich unter Windows nicht unbedingt herumschlagen möchte sofern man nicht sowieso auf der Maschine in C oder C++ programmiert und sich damit auch jenseits von GUIs/IDEs ein wenig auskennt.
Peter-Gregor
User
Beiträge: 3
Registriert: Mittwoch 28. Januar 2015, 11:06
Wohnort: Taunus

Hallo BlackJack,

vielen Dank, dafür daß Du Dich damit auseinandergesetzt und mir geantwortet hast.

Mir geht es im Fall der Paketinstallation erstmal um das allgemeine Prozedere. Wie mache ich das denn, wenn ich ein Package aus dem Netz laden möchte im allgemeinen?

Soweit ich das zu begreifen glaube, stehen mir prinzipiell zwei Wege offen: ich installiere ich das Package mit pip komplett, oder -und diese Abfolge würde mich jetzt im Detail interessieren- ich lade ich das Paket per Browser und installiere es händisch.

Wenn händisch, dann ... :)

... muß ich mich vor dem Installieren erst, gegebenenfalls um das Entpacken kümmern (z.B. zip, tar), oder leistet das "pip"? Wohin muß ich es überhaupt kopieren? In das Python-Installationsverzeichnis (z.B. c:\Python34), oder in ein Unterverzeichnis? Und dann nehme ich pip und installiere es?

Gibt es auch andere Varianten, z.B. sich selbst installierende exe Files, bei denen ich kein PIP benötige?

Du siehst, es sind eigentlich ganz einfache Fragen. Vor der Beantwortung dieser einfachen Fragen steht aber noch eine Prinzipielle: Ist es denn bei jedem Package anders, oder gibt es ein generelles, anzuwendendes Prozedere, das ich jetzt noch nicht sehe?
BlackJack

@Peter-Gregor: Was ``pip`` angeht: Die Dokumentation hast Du aber schon gelesen‽ Da werden die Kommandos und die ganzen Optionen erklärt und es gibt auch Beispielaufrufe.

Ins Python-Verzeichnis sollte man nichts selber kopieren solange man nicht genau weiss was man da tut.

Ansonsten gibt es alle möglichen Varianten — wenn die jemand zur Verfügung gestellt hat. Der in der Python beschriebene Weg ist über eine `setup.py`. Die wird letztendlich auch von `pip` ausgeführt wenn das Paket aus Quelltexten installiert wird (Verzeichnis mit Quellen, Archivdatei, Versionskontrolle (Git, SVN, Mercurial, …), …). ``pip`` erweitert das durch automatisches herunterladen von den Quellen, oder vorkompilierten Paketen (Egg, Wheel, EXE Installer), und Beschreibungen von Abhängigkeiten die dann auch gesucht, heruntergeladen, und installiert werden.

Das funktioniert bei reinen Python-Packages sehr gut. Problematisch kann es werden wenn Erweiterungsmodule dabei sind die in C geschrieben sind und die dann zum Installieren übersetzt werden müssen. Unter Linux in der Regel kein Problem, aber unter Windows muss man dann den passenden C-Compiler installiert haben, und wenn externe DLLs angesprochen werden sollen, dann auch die Header-Dateien für diese DLLs. Und das ist dann alles nicht mehr so einfach wie unter Linux wo man einfach ein paar Pakete von der Linuxdistribution installiert.

Von Pillow gibt es im Package Index allerdings eine recht beeindruckende Anzahl von verschiedenen vorkompilierten Varianten.
Antworten