pillow pip etc

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.
Benutzeravatar
noisefloor
User
Beiträge: 4321
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

@Bernardo_smf: pip ist ein ausführbares Programm, _kein_ Modul für Python. Ausführbare Programme führt man im Terminal auf, unter Windows als z.B. die Windows Eingabeaufforderung oder in der PowerShell. Im Python-Interpreter, den du via `python` in der Eingabeaufforderung startest, führst du _nur_ Python Befehl und Code aus, interaktiv.

Das ist ein essentieller Unterschied und das Grundverständnis, was man wo macht, muss schon da sein. Da ist auch nichts Python-spezifisches, das ist bei vielen Programmiersprachen so.

Gruß, noisefloor
Bernardo_smf
User
Beiträge: 9
Registriert: Mittwoch 11. März 2026, 17:33

Hallo und moin noisefloor,
ja, das war ein sehr hilfreicher Austausch über "pip" mit dir. Ich habe jetzt einige Programme aus dem Tutorial von Weigend zum Laufen bringen können. -
Meine letzte Frage bleibt:
Wie komme ich an eine Übersicht über die PyPi Moduleheran? Das sollen ja einige hundert Tausend sein. Das müsste doch jetzt ganz einfach sein, oder?
Wie sind die geordnet, etc?

Kannst du dazu etwas sagen?
Vielen Dank

Bernardo

PS Ich bin nicht so schnell mit dem Antworte: Ich bin seit über 15 Jahren im Ruhestand (Physiker und Prof für Elektrotechnik) und mach die Programmierung eigentlich nur zum Zeitvertreib. Und Neugier, da Kollegen von mir u.a. C++ unterrichtet haben und ich wissen will, wie so eine objekltorientierte Sprache "tickt".
Sirius3
User
Beiträge: 18403
Registriert: Sonntag 21. Oktober 2012, 17:20

Dafür gibt es https://pypi.org. Du mußt aber wissen, was Du suchst, um etwas zu finden. Was ist Deine eigentliche Frage? Was fehlt Dir noch?
Benutzeravatar
__blackjack__
User
Beiträge: 14384
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Bernardo_smf: Die Module die installiert sind, kann man mit ``pip list`` auflisten. Dabei muss man beachten, dass es mehrere Python-Installationen und venvs auf dem Rechner geben kann.

Die Module/Packages, die man aus dem Python Package Index installieren kann, lassen sich dort suchen und auflisten: https://pypi.org/

Projekte können Klassifikatoren angeben, nach denen man in der Suche filtern kann: https://pypi.org/classifiers/

Bezüglich »wie so eine objektorientierte Sprache “tickt“« sollte man vielleicht anmerken, dass es nicht _die_ Objektorientierung gibt. Es gibt beispielsweise C++-Programmierer, die sagen Python wäre nicht wirklich objektorientiert. Andererseits sagt der Mensch, der den Begriff „objektorientiert“ erfunden hat (Alan Kay), dass er dabei nicht das im Kopf hatte was C++ unter diesem Namen macht. Es gibt da also durchaus Spielraum wie Objektorientierung aufgefasst und umgesetzt werden kann, und man kann das IMHO nicht anhand einer einzigen Programmiersprache komplett erfassen.
Who is General Failure and why is he reading my hard disk?
Bernardo_smf
User
Beiträge: 9
Registriert: Mittwoch 11. März 2026, 17:33

Hallo und moin noisefloor,

ich habe deine Beiträge aufmerksam gelesen und bin echt einen Superschritt weitergekommen. Ich kann jetzt viele der Programme aus dem Buch "Python 3 Schnelleinstieg" zum Laufen bringen, speziell die mit "pip". -
Eine letzte Frage bleibt: Wo findet man die vielen Tausend Module, die von PyPi bereitgestellt werden? Das sollte doch jetzt auch funktionieren,. oder?

Danke soweit
Bernardo

PS ich hatte vor ca. einer Woche schon einmal mit eine Rückmeldung gegeben, die aber wohl nicht abgeschickt wurde. Ich bin auch, da seit ca. 18 Jahren im Ruhestand nicht sehr häufig mit Python unterwegs. Mache das mehr aus Interesse an einer objektorientierten Sprache.Da einige Kollegen von mir C++ an der HAW Hamburg unterrichtet haben, wollte ich mir einen Einblick verschaffen. Ich fing früher mal mit Algol und Fortran an!
Bernardo_smf
User
Beiträge: 9
Registriert: Mittwoch 11. März 2026, 17:33

Jetzt habe ich gesehen, dass meine Message vom 14.4. doch von mir abgeschickt wurde.
Danke an _blackjack_ der ja meine Fragen zu PyPi schon beantwortet hat!!

LG Bernardo
Benutzeravatar
__blackjack__
User
Beiträge: 14384
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Algol und Fortran waren vor meiner Zeit. Mit so etwas beschäftige ich mich heute als Hobby. Habe mir jetzt Algol 60 angeschaut. Schöner als Fortran und es sieht Pascal recht ähnlich. „Call by name“ ist aus heutiger Sicht ein bisschen schräg. :-)
Who is General Failure and why is he reading my hard disk?
Benutzeravatar
snafu
User
Beiträge: 6967
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Vermutlich entspricht Call by Name heutzutage der Idee hinter Call by Reference.
Benutzeravatar
__blackjack__
User
Beiträge: 14384
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@snafu: Nee, das ist nur ein Spezialfall davon. „Call by name“ ist äquivalent dazu den Code der da für das Argument steht, tatsächlich jedes mal anstelle des Namens hin in die Prozedur zu schreiben. Angenommen wir haben eine RND-Funktion die einen Zufallswert x mit 0 ≤ x < 1 liefert und folgende Prozedur die das Ergebnis von A+A ausgibt:

Code: Alles auswählen

PROCEDURE P(A); INTEGER A; BEGIN OUTINTEGER(1,A+A) END
Und die rufen wir jetzt so auf (`ENTIER()` entspricht Python's `int()`):

Code: Alles auswählen

P(ENTIER(RND*6)+1)
Das addiert nicht etwa zweimal _einen_ Zufallswert, sondern der komplette Ausdruck für den `A` steht, wird zweimal ausgewertet, also das `A+A` wird ausgeführt als `(ENTIER(RND*6)+1)+(ENTIER(RND*6)+1)`. Es wird also zweimal gewürfelt.

In Python sähe das so aus:

Code: Alles auswählen

def p(a): print(a() + a())
p(lambda: int(random.random() * 6) + 1)
„Call by name“-Argumente werden also quasi automatisch in anonyme Prozeduren verpackt, die jedes mal wenn der formale Parameter in einem Ausdruck verwendet wird, ausgeführt werden. Und bei Zuweisungen an den formalen Parameter muss der etwas sein, dem man etwas zuweisen kann — dann verhält sich das wie „call by reference“.

Falls also nicht explizit so etwas wie „call by reference“ gewollt ist, oder man will, dass Seiteneffekte mehr als einmal ausgeführt werden, kann das eine Falle sein. Bei Ausdrücken mit Seiteneffekt überraschend, und grunsätzlich potentiell zusätzliche Laufzeit, die man einsparen könnte wenn etwas mehrfach berechnet wird.
Who is General Failure and why is he reading my hard disk?
Antworten