Seite 1 von 1
Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 13:26
von lianaK
Hallo bin Neuling mit Python und hab schon ein paar Übungen gemacht.. ua mit TK inter OK soweit..
Jetzt möchte ich ein Bild laden und Brauche Pil bzw pillow ist das das Gleiche? Wie installiere und öffne ich das Modul korrekt?
Danke Luana
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 14:07
von sparrow
Deine Suchwörter lauten "pip" und ggf. "venv" oder "virtual env".
Der Package Indey von Python heißt PyPI.
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 14:18
von __blackjack__
@lianaK: PIL wird nicht mehr weiterentwickelt, Pillow führt das Projekt fort. Also in dem Sinne ist das das Gleiche, aber PIL würde man nicht mehr installieren. Pillow heisst das Package was man installiert, das Modul das man importieren muss, heisst aber weiterhin PIL.
Falls man auf Linux unterwegs ist, kann es auch Sinn machen das über die Pakete der Linux-Distribution zu installieren. Dann hat man das systemweit installiert, ohne die Gefahr sich das System durch eine Fremdquelle kaputt zu machen.
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 14:47
von lianaK
Danke fürs Feedback

aber ihr seid zu schnell
Habe das riesige pillow 10.2 runtergeladen und in Lib site-packages kopiert.. was nun?
Ich will auch später Mal eine exe Datei erstellen hab dafür Auto,-py-to-exe auch gefunden vom Download und in den Site packages Ordner kopiert
Pip habe ich auch dahin kopiert und _init,_ geöffnet und Run Module gedrückt .. was nun?
Und Last Not least habe ich auch ply 3.11 dorthin kopiert
Danke liana
Ich habe Python ,3.12 Windows
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 14:49
von sparrow
Nein, du bist zu schnell.
Wenn du Dinge per Hand kopiert hast, war das falsch. Dafür gibt es pip.
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 14:57
von lianaK
Danke Schritt für Schritt bitte
Was mache ich mit pip?
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 15:02
von sparrow
Module installieren.
Das war deine Frage. Die Begriffe, über die du dich informieren solltest, habe ich dir in der ersten Antwort genannt.
Die sind alle gut dokumentiert.
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 17:33
von __blackjack__
@lianaK: `pip` ist ein Modul das bei Python in der Standardbibliothek enthalten ist und dementsprechend auch in der Python-Dokumentation beschrieben wird. Und deshalb ist „Pip habe ich auch dahin kopiert […]“ etwas eigenartig. Von wo und warum? Das ist ja schon da wo es hingehört wenn man Python installiert hat.
An den Python-Verzeichnissen sollte man nicht selbst Änderungen vornehmen, an den dazu vorgesehenen Werkzeugen wie `pip` vorbei.
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 21:48
von lianaK
Danke nochmals hab einiges gelesen und auch zwei Module geladen pip Install pillow auf der commandozeile
Hab ein Bild geladen
From Pil import Image
Image= Image.open("frau.jpg")
Dann bekomme ich eine Error Message etwas mit Module pil.image Line 37 default_image.thumbnsil etc und Antialias ist wohl das Problem
Gruss liana
Re: Wie installiere ich ein Modul
Verfasst: Samstag 23. März 2024, 21:53
von sparrow
Ist in dem Post eine Frage?
Falls ja: Zeige bitte immer den Code, den du auführtst (genau so, wie du ihn ausführst) in Code-Tags. Code-Tags erscheinen automatisch wenn du im "vollständigen Editor" den </> Button drückst.
Gleiches gilt auch für die Fehlermeldung. Die exakte Fehlermeldung ebenfalls in einem Code-Block.
Re: Wie installiere ich ein Modul
Verfasst: Sonntag 24. März 2024, 16:33
von lianaK
Hallo zusammen
Habe diese uebung mit einem Bild zu laden gemacht
Bekomme aber stets diese Fehlermeldung Warum?
Code: Alles auswählen
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
def overlay_text(image_label, text, position, font=("Helvetica", 16), color="white"):
# Create a transparent overlay
overlay = tk.Label(image_label, text=text, font=font, bg="black", fg=color)
overlay.place(**position, anchor="nw")
def load_image():
global photo
file_path = filedialog.askopenfilename(filetypes=[("Image Files", "*.png;*.jpg;*.jpeg")])
if file_path:
image = Image.open(file_path)
# Resize the image based on height
desired_height = 400 # Set your desired height here
height_percent = (desired_height / float(image.size[1]))
new_width = int((float(image.size[0]) * float(height_percent)))
image.thumbnail((new_width, desired_height), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
image_label.config(image=photo)
# Create the main window
root = tk.Tk()
root.title("Image with Transparent Text")
# Load the default image # c:\aPython24\Python312-32
default_image_path = "C:\aPython24\Python312-32\frniem50.jpg" #'' "your_default_image_path.jpg"
default_image = Image.open(default_image_path)
#default_image.show()
# Resize the default image based on height
desired_height = 400 # Set your desired height here
height_percent = (desired_height / float(default_image.size[1]))
new_width = int((float(default_image.size[0]) * float(height_percent)))
default_image.thumbnail((new_width, desired_height), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(default_image)
# Create a label to display the image
image_label = tk.Label(root, image=photo)
image_label.pack()
# Overlay transparent text
overlay_text(image_label, "Your Model", position={"x": 50, "y": 50})
# Create a button to load another image
load_button = tk.Button(root, text="Load Image", command=load_image)
load_button.pack()
root.mainloop()
= RESTART: C:\aPython24\Python312-32\load-imageneu1.py
Traceback (most recent call last):
File "C:\aPython24\Python312-32\load-imageneu1.py", line 31, in <module>
default_image = Image.open(default_image_path)
File "C:\aPython24\Python312-32\Lib\site-packages\PIL\Image.py", line 3247, in open
fp = builtins.open(filename, "rb")
OSError: [Errno 22] Invalid argument: 'C:\x07Python24\\Python312-32\x0crniem50.jpg'
Bitte um Hilfe was ich falsch mache danke
Re: Wie installiere ich ein Modul
Verfasst: Sonntag 24. März 2024, 16:42
von sparrow
Backslashes in Zeichenketten haben eine spezielle Bedeutung.
Hier wird das ganz gut beschrieben.
Das Einfachste: Verwendung einen Slash (/) als Pfadtrenner verwenden.
Re: Wie installiere ich ein Modul
Verfasst: Sonntag 24. März 2024, 21:22
von __blackjack__
@lianaK: Anmerkungen zum Quelltext:
Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.
Funktionen (und Methoden) bekommen alles was sie ausser Konstanten benötigen als Argument(e) übergeben.
``global`` hat in einem sauberen Programm nichts zu suchen.
Kommentare sollen dem Leser einen Mehrwert über den Code geben. Faustregel: Kommentare beschreiben nicht *was* der Code macht, denn das steht da bereits als Code, sondern warum er das macht. Sofern das nicht offensichtlich ist. Offensichtlich ist in aller Regel auch was in der Dokumentation von Python und den verwendeten Bibliotheken steht.
Der Code zum laden und ändern der Grösse eines Bildes ist fast 1:1 kopiert. Solche Wiederholungen sind unnötige Arbeit und fehleranfällig, weil man bei Veränderungen immer beide Kopien ändern muss und das auf eine äquivalente Art. Das würde man in eine Funktion herausziehen.
Die `float()`-Aufrufe sind überflüssig. Das sind schon Zahlen und ``/`` hat Gleitkommazahlen als Ergebnis.
`ANTIALIAS` gibt es in aktuellen Versionen von Pillow nicht mehr.
Bei `overlay_text()` stimmen die Kommentare nicht. Da ist nix transparent!
Code: Alles auswählen
#!/usr/bin/env Python3
import tkinter as tk
from functools import partial
from tkinter import filedialog
from PIL import Image, ImageTk
def load_image(label, file_path):
image = Image.open(file_path)
desired_height = 400
image.thumbnail(
(int(image.size[0] * desired_height / image.size[1]), desired_height),
Image.LANCZOS,
)
photo = ImageTk.PhotoImage(image)
label.image = photo
label["image"] = photo
def overlay_text(
image_label, text, position, font=("Helvetica", 16), color="white"
):
tk.Label(image_label, text=text, font=font, bg="black", fg=color).place(
**position, anchor=tk.NW
)
def do_load_image(label):
file_path = filedialog.askopenfilename(
filetypes=[("Image Files", ("*.png", "*.jpg", "*.jpeg"))]
)
if file_path:
load_image(label, file_path)
def main():
root = tk.Tk()
root.title("Image with Transparent Text")
image_label = tk.Label(root)
image_label.pack()
load_image(image_label, R"C:\aPython24\Python312-32\frniem50.jpg")
overlay_text(image_label, "Your Model", position={"x": 50, "y": 50})
tk.Button(
root, text="Load Image", command=partial(do_load_image, image_label)
).pack()
root.mainloop()
if __name__ == "__main__":
main()
Re: Wie installiere ich ein Modul
Verfasst: Montag 1. April 2024, 08:43
von lianaK
@blackjack vielen Dank für die Infos über Module und dein Codebeispiel das werde ich testen

einige Module laufen jetzt bei mir andere nicht weil ich einige Fehler bei der Installation gemacht habe
Evtl sollte ich Python 3.12 deinstallieren wenn das so einfach geht
Frohes Osterfest noch bei uns gibt's heute Sonnenschein , danke liana
Re: Wie installiere ich ein Modul
Verfasst: Montag 1. April 2024, 17:27
von oldboyJR
Ich habe gelesen das man in Spyder(python id) nicht den PIP befehl benutzen soll wenn man Spyder mit Anaconda installiert hat. PIP soll dann nicht vollständig laden. Man soll dann besser im anaconda das Promt lounchen und dort "conda install (modulname)"eingeben.
Re: Wie installiere ich ein Modul
Verfasst: Donnerstag 4. April 2024, 19:30
von bb1898
oldboyJR hat geschrieben: ↑Montag 1. April 2024, 17:27
Ich habe gelesen das man in Spyder(python id) nicht den PIP befehl benutzen soll wenn man Spyder mit Anaconda installiert hat. PIP soll dann nicht vollständig laden. Man soll dann besser im anaconda das Promt lounchen und dort "conda install (modulname)"eingeben.
Wo in diesem Thread war von Anaconda und/oder Spyder die Rede? Ich finde keine entsprechende Stelle.