Wie mache ich eine ausführbare Datei für Linux

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.
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Das ist nett das Du es schön erklärt hast , aber ich weiß trotzdem nicht ich das jetzt beheben kann das es funktioniert .

Wäre lieb wenn man mir doofi nur kurz und knapp erklärt was ich jetzt machen könnte um das zu beheben .
Benutzeravatar
pillmuncher
User
Beiträge: 1527
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@TorstenVoelker: Es gibt bereits deutschsprachige Anleitungen zu virtuellen Umgebungen, da macht es wenig Sinn, hier eine weitere zu verfassen. Deswegen: https://www.google.com/search?q=python+ ... e+umgebung
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
noisefloor
User
Beiträge: 4155
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Es gibt das Python-Tutorial auch auf deutsch, inkl. dem venv Kapitel: https://pytude.readthedocs.io/de/latest/venv/. venvs soll man dringend verstanden haben, weil man das früher und später auf jeden Fall braucht. Unter Linux eher früher, weil das venvs stärker erzwungen werden als z.B. unter Windows.

Und an englische Dokus solltest du dich gewöhnen, weil halt 98% der Dokus im Python-Bereich auf englisch sind. Oder halt den Umweg über eine Übersetzungstool wie Deepl oder Google Translate (wobei Deepl IMHO besser ist) gehen.

Gruß, noisefloor
Benutzeravatar
Kebap
User
Beiträge: 760
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

TorstenVoelker hat geschrieben: Mittwoch 19. März 2025, 14:23 Danke für das lange Statement, aber ich verstehe Bahnhof 🤣 .

Wie ich heraus lesen konnte bei dem Fehler ist das er MySQL nicht findet . Also das Modul . Jetzt frage ich mich wie ich das interpretieren kann das es mit einbezogen wird .
Wie war das denn, als du dein Programm entwickelt hast. Konntest du da automatisch MySQL finden und benutzen? Oder hast du erst etwas dafür tun müssen Das können wir ja nicht raten. Dann ist es schwer, konkrete Schritte zu empfehlen.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich musste das MySQL natürlich vorher installieren und auch in Python den connector installieren .
Benutzeravatar
__blackjack__
User
Beiträge: 13931
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Naja dann musst Du für *dieses* Python halt auch den Connector installieren, oder aber in der She-Bang-Zeile das Python verwenden, für das Du den Connector installiert hast/hattest.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Also ich nehme an das die She-Bang-Zeile das mit dem !# ist der oben steht im Code .

Was heißt das Python nehmen was ich verwende . Meinst du damit die Version ?

Ich glaube jeder der es schon mal gemacht hat und damit auch lange zu kämpfen hatte ist das heute ein Kinderspiel.
Benutzeravatar
grubenfox
User
Beiträge: 593
Registriert: Freitag 2. Dezember 2022, 15:49

TorstenVoelker hat geschrieben: Donnerstag 20. März 2025, 10:34 und auch in Python den connector installieren .
Das oben genannte Python (das mit dem connector)
Benutzeravatar
__blackjack__
User
Beiträge: 13931
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Naja nicht nur Version sondern die konkrete Python-Installation, also genau das Python-Programm/den Python-Interpreter mit dem Du das ausgeführt hast ohne das es den Import-Fehler gab. Denn für *das* Python hast Du ja anscheinend das Connector-Python-Package installiert. *Wie* hast Du das denn installiert? Hast Du das in ein venv installiert?
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Benutzeravatar
pillmuncher
User
Beiträge: 1527
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

TorstenVoelker hat geschrieben: Donnerstag 20. März 2025, 12:27 Was heißt das Python nehmen was ich verwende . Meinst du damit die Version ?
Ich habe dir bereits mehrfach die Gründe dargelegt, warum man virtuelle Umgebungen verwenden möchte. Du verwendest Pycharm. Das legt für jedes Projekt eine eigene virtuelle Umgebung an, was man an der Fehlermeldung in deinem Beitrag viewtopic.php?p=433228#p433228 sehen kann:

Code: Alles auswählen

"/home/torsten/PycharmProjects/lamda test/.venv/bin/python" /home/torsten/PycharmProjects/lamda test/main.py 
Das test/.venv/bin/python ist das Python aus der virtuellen Umgebung, die Pycharm für dich angelegt hat. Ich würde empfehlen, einfach das zu verwenden. Dazu setzt du den absoluten Pfad zu diesem Python als shebang ganz oben in dein Programm. Ich verwende Pycharm nicht und kann dir deswegen nicht sagen, wo Pycharm die virtuelle Umgebung anlegt, aber es könnte /home/torsten/PycharmProjects/lamda/test/.venv sein, weswegen dann dein shebang so aussehen sollte:

Code: Alles auswählen

#!/home/torsten/PycharmProjects/lamda/test/.venv/bin/python
Oder du aktivierst die virtuelle Umgebung, dann kannst du einfach

Code: Alles auswählen

#!/usr/bin/env python
verwenden. Wie das Aktivieren geht, habe ich dir bereits gezeigt.

Aber nochmal: Du musst lernen, was virtuelle Umgebungen in Python sind und warum und wie man sie verwendet.
In specifications, Murphy's Law supersedes Ohm's.
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

__blackjack__ hat geschrieben: Donnerstag 20. März 2025, 13:22 @TorstenVoelker: Naja nicht nur Version sondern die konkrete Python-Installation, also genau das Python-Programm/den Python-Interpreter mit dem Du das ausgeführt hast ohne das es den Import-Fehler gab. Denn für *das* Python hast Du ja anscheinend das Connector-Python-Package installiert. *Wie* hast Du das denn installiert? Hast Du das in ein venv installiert?


Ne das habe ich noch nicht.
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Gleich schmeiße ich den ganzen kramm hin .

Jetzt wollte ich ein apt-get update machen um venv zu installieren so habe ich das gelesen im internet.
Aber jetzt kommt beim Update versuch .

Paketlisten werden gelesen… Fertig
E: Sperrdatei /var/lib/apt/lists/lock konnte nicht geöffnet werden. - open (13: Keine Berechtigung)
E: Das Verzeichnis /var/lib/apt/lists/ kann nicht gesperrt werden.
W: Problem beim Entfernen (unlink) der Datei /var/cache/apt/pkgcache.bin - RemoveCaches (13: Keine Berechtigung)
W: Problem beim Entfernen (unlink) der Datei /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Keine Berechtigung)



Macht kein Spass mehr .
Nur noch Probleme.
Sirius3
User
Beiträge: 18225
Registriert: Sonntag 21. Oktober 2012, 17:20

@TorstenVoelker: ganz zu Anfang schriebst Du, dass Du ein Projekt in pycharm erzeugt hast. Ich habe mal gehört, dass wenn man in pycharm weitere Pakete installiert, automatisch ein venv erzeugt.
Wie man dieses venv aus pycharm exportiert, um es dann unabhängig davon zu installieren, müssen Dir pycharm-Experten sagen können, da bin ich raus.

IDEs verstecken einem einiges, was man dann aber braucht, wenn man davon unabhängig werden will. Das ist ganz normal, dass man gefrustet ist, wenn man aus der behüteten Welt in die Wirklichkeit kommt.

Wenn Du irgendwas im internet liest, wäre es gut, wenn Du auch eine Quelle angibst, im Internet steht viel.
Du hast wahrscheinlich sowas ausprobiert, nur ohne sudo:

Code: Alles auswählen

sudo apt-get install python3-venv
Benutzeravatar
pillmuncher
User
Beiträge: 1527
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@TorstenVoelker: Ich vermute sogar, dass python3-venv bereits auf deinem System installiert ist. Pycharm war ja in der Lage, ein venv anzulegen. Warum verwendest du nicht einfach das? Hatte ich dir ja schon geschrieben und auch wie: Du fügst eine shebang-Zeile an den Anfang deines Python-Progamms ein, die auf das python in dem venv zeigt, das Pycharm für dich angelegt hat.
In specifications, Murphy's Law supersedes Ohm's.
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Werde Morgen nochmal schauen , bin jetzt auf der Arbeit bis 23:00 Uhr .

Danke Euch allen !

Mal sehen wie es Morgen läuft .
Benutzeravatar
Dennis89
User
Beiträge: 1506
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

wenn PyCharm eine Entwicklungsumgebung anlegt, was man beim erstellen eines neuen Projektes auswählen kann, dann bekommt man, wenn man nichts anderes angibt, in dem Projektordner einen Ordner mit dem Namen „venv“. Der ist allerdings nicht sichtbar, sprich im Terminal mit „ ls -la“ sollte dann „.venv“ auftauchen und darin befindet sich ein Ordner „bin“ und darin ist der Python-Interpreter, denn du ausführen sollst.

Das geht vollkommen unabhängig von PyCharm, einfach im Terminal den Pfad zum Python-Interperter (…/.venv/bin/python) und danach den Pfad zu Skript eingeben.

Grüße
Dennis


Edit: Die Entwicklungsumgebung wird nicht beim installieren von Paketen erstellt. Entweder wenn man ein Projekt anlegt oder wenn man das beim Anlegen nicht will, kann man jeder Zeit eine Entwicklungsumgebung erstellen oder eine bereits erstellte dem Projekt zuweisen.
"When I got the music, I got a place to go" [Rancid, 1993]
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Dennis89 hat geschrieben: Donnerstag 20. März 2025, 20:22 Hallo,

wenn PyCharm eine Entwicklungsumgebung anlegt, was man beim erstellen eines neuen Projektes auswählen kann, dann bekommt man, wenn man nichts anderes angibt, in dem Projektordner einen Ordner mit dem Namen „venv“. Der ist allerdings nicht sichtbar, sprich im Terminal mit „ ls -la“ sollte dann „.venv“ auftauchen und darin befindet sich ein Ordner „bin“ und darin ist der Python-Interpreter, denn du ausführen sollst.

Das geht vollkommen unabhängig von PyCharm, einfach im Terminal den Pfad zum Python-Interperter (…/.venv/bin/python) und danach den Pfad zu Skript eingeben.

Grüße
Dennis


Edit: Die Entwicklungsumgebung wird nicht beim installieren von Paketen erstellt. Entweder wenn man ein Projekt anlegt oder wenn man das beim Anlegen nicht will, kann man jeder Zeit eine Entwicklungsumgebung erstellen oder eine bereits erstellte dem Projekt zuweisen.
Kannst du mir zeigen wie Du das meinst .
Also meine Datei liegt im Ordner pythonproject/notizkalender/Main.py

Das ich einmal eine Vorlage habe Wie das komplett aussieht ?

Das wäre super lieb .

Dann kann ich das vielleicht besser verstehen .
Benutzeravatar
Dennis89
User
Beiträge: 1506
Registriert: Freitag 11. Dezember 2020, 15:13

Öffne ein Terminal und navigiere in den Ordner „pythonproject“. Wenn der im Home-Verzeichnis liegt, dann sieht das irgendwie so aus:

Code: Alles auswählen

cd PycharmProjects/pythonproject
Dann schaust du nach ob du einen Ordner „.venv“ findest, mit dem Befehl „ls -la“. Wenn der in diesem Ordner, in dem du dich befindest, ist dann ist alles gut, ansonsten musst du schauen wo der Ordner ist. Angenommen „.venv“ ist vorhanden, dann:

Code: Alles auswählen

.venv/bin/python notizkalender/Main.py
Beachte den Punkt in „.venv“, falls das bei dir auch so ist.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich schaue nachher mal wenn ich von der Arbeit zurück bin . Danke erstmal im Voraus!!!
TorstenVoelker
User
Beiträge: 139
Registriert: Mittwoch 5. Februar 2025, 12:55

Dennis89 hat geschrieben: Freitag 21. März 2025, 08:07 Öffne ein Terminal und navigiere in den Ordner „pythonproject“. Wenn der im Home-Verzeichnis liegt, dann sieht das irgendwie so aus:

Code: Alles auswählen

cd PycharmProjects/pythonproject
Dann schaust du nach ob du einen Ordner „.venv“ findest, mit dem Befehl „ls -la“. Wenn der in diesem Ordner, in dem du dich befindest, ist dann ist alles gut, ansonsten musst du schauen wo der Ordner ist. Angenommen „.venv“ ist vorhanden, dann:

Code: Alles auswählen

.venv/bin/python notizkalender/Main.py
Beachte den Punkt in „.venv“, falls das bei dir auch so ist.

Grüße
Dennis
Hi Dennis , habe das mal so gemacht wie Du das erklärt hast .
Also eine .Venv Datei ist in den Ordner vorhanden .
Habe dann die Zeile mit den [u].venv/bin /python notizkalender / Main.py [/u] kopiert und reingestzt im Main Script aber es kommt dann ein fehler sprich eine lange durchgezogene Linie . Habe versucht mal selber es zu lösen aber hilft alles nichts.
Antworten