Ich möchte jetzt eure Vorschläge zu meinem, an anderer Stelle, vorgestellten Projektes des Rechenduells in Angriff nehmen. Dazu muss ich Biblitoheken installieren, die ich in meinem bestehenden Rechentrainer.app Projekt nicht benötige und denke, jetzt ist es Zeit, mich mit VE zu beschäftigen.
Habe ich das richtig verstanden, dass ich auch bei meinem bestehenden Projekt jetzt noch ein VE einrichten kann oder hätte ich das von Anfang an machen müssen? Und, wenn ich das eingerichtet habe, wie bette ich ein neues Projekt in ein neues VE ein? Einfach ein neues Projekt öffnen und "venv" ausführen?
Hilfe bei virtuel environment
-
- User
- Beiträge: 1050
- Registriert: Sonntag 19. September 2021, 09:40
- DeaD_EyE
- User
- Beiträge: 1217
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Man kann das venv entweder mittels source aktivieren:
Oder man führt einfach direkt den Python-Interpreter mit dem Programm aus:
Die Installation des venv ist auch recht einfach:
Die Installation der Pakete kann man manuell mit pip vornehmen. Das Aktivieren nicht vergessen, bevor Befehle wie pip oder python mit dem venv verwendet werden sollen. Mach das erstmal mit dem venv, später kannst du ggf. auf etwas umsteigen, dass all diese Vorgänge automatisiert: Pakete aktualisieren, Code-Formatierung, Tests ausführen usw.
Code: Alles auswählen
source /home/USER/venv_rechentrainer/bin/activate
Code: Alles auswählen
source /home/USER/venv_rechentrainer/bin/pyhon /home/USER/PROGRAMM/main.py
Code: Alles auswählen
python -m venv /home/USER/venv_rechentrainer
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 1050
- Registriert: Sonntag 19. September 2021, 09:40
Vielen Dank schonmal. Aber habe Verständnis für jemanden der das noch nie gemacht hat:
Ich bin unsicher mit der Benennung. Der code, den ich schreibe, liegt in meinen Daten in einem Ordner "rechentrainer.app".
Der Code von Python liegt unter "C:\Users\Pit\AppData\Local\Programms"?
Muss ich in deinem Code "/USER/venv_rechentrainer/bin/pyhon" das "rechentrainer" anpassen oder erstellt der Code eine VE mit dem Namen "rechentrainer"?
Und deinen erstgenannten Code führe ich z.B. mittels cmd aus oder wahlweise den zweiten im Terminal von VBCode?
Noch eine Zusatzfrage:
Der Code von Django liegt dann wiederum als Extention von VSBasic im Ordner "...\Local\Programms\Microsoft VS Code" und/oder Im Ordner von Python?
Ich bin unsicher mit der Benennung. Der code, den ich schreibe, liegt in meinen Daten in einem Ordner "rechentrainer.app".
Der Code von Python liegt unter "C:\Users\Pit\AppData\Local\Programms"?
Muss ich in deinem Code "/USER/venv_rechentrainer/bin/pyhon" das "rechentrainer" anpassen oder erstellt der Code eine VE mit dem Namen "rechentrainer"?
Und deinen erstgenannten Code führe ich z.B. mittels cmd aus oder wahlweise den zweiten im Terminal von VBCode?
Noch eine Zusatzfrage:
Der Code von Django liegt dann wiederum als Extention von VSBasic im Ordner "...\Local\Programms\Microsoft VS Code" und/oder Im Ordner von Python?
- __blackjack__
- User
- Beiträge: 13997
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Pitwheazle: Das hätte man jetzt aber auch einfach ausprobieren können:
Das Verzeichnis wird also erstellt und muss/darf nicht bereits existieren. Nach dem erstellen sind die entsprechenden Programme im ``bin/``-Verzeichnis in dem venv-Verzeichnis.
Code: Alles auswählen
$ ls test_venv
ls: cannot access 'test_venv': No such file or directory
$ python3 -m venv test_venv
$ ls test_venv
bin include lib lib64 pyvenv.cfg
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
-
- User
- Beiträge: 1050
- Registriert: Sonntag 19. September 2021, 09:40
Prima!
Das habe ich jetzt ausprobiert und habe innerhalb meines Codes ein "test_venv" Verzeichnis und das kümmert sich um alles? Habe ich nicht gelesen, dass sich jetzt mein Cursoranzeige ändern müsste - oder muss ich das jetzt erst aktivieren?
Und kann ich das "test" jetzt umbenennen oder muss ich es entfernen und einen sinnvollen Namen geben?
... und mit meinem geplanten neuen Projekt mache ich das auch so und die kommen sich dann nicht in die Quere und benutzen jeweils eigenen Umgebungen/Bibliotheken?
Das habe ich jetzt ausprobiert und habe innerhalb meines Codes ein "test_venv" Verzeichnis und das kümmert sich um alles? Habe ich nicht gelesen, dass sich jetzt mein Cursoranzeige ändern müsste - oder muss ich das jetzt erst aktivieren?
Und kann ich das "test" jetzt umbenennen oder muss ich es entfernen und einen sinnvollen Namen geben?
... und mit meinem geplanten neuen Projekt mache ich das auch so und die kommen sich dann nicht in die Quere und benutzen jeweils eigenen Umgebungen/Bibliotheken?
- DeaD_EyE
- User
- Beiträge: 1217
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Weißt du noch in einem halben Jahr, was du gemacht hast? Ich benenne Dinge so, dass ich sofort weiß, worum es geht. Das existierende venv kann, soweit ich weiß, nicht umbenannt werden. Erstell einfach ein neues mit dem gewünschten Namen.Pitwheazle hat geschrieben: Mittwoch 13. November 2024, 18:20 Und kann ich das "test" jetzt umbenennen oder muss ich es entfernen und einen sinnvollen Namen geben?
Es gibt noch andere Tools, aber zuerst solltest du mit venv warm werden.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
All das wird auch in der Dokumentation sehr ausführlich erklärt und beschrieben.
STRG+F "A virtual environment is".
STRG+F "A virtual environment is".
- noisefloor
- User
- Beiträge: 4172
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Zu venv gibt es auch einen Kapitel im Python Tutorial und dessen deutscher Übersetzung: https://pytude.readthedocs.io/de/latest/venv/.
Gruß, noisefloor
Gruß, noisefloor
-
- User
- Beiträge: 1050
- Registriert: Sonntag 19. September 2021, 09:40
Vielen Dank für eure Hinweise.
Dann habe ich diese hier https://docs.python.org/3/tutorial/venv.html gefunden, damit kann ich was anfangen.
... und das hier
Ich habe das hier
Ich habe den Ordner einfach entfernt und dann ging das wieder.
Es wäre schön, wenn ihr mir jetzt nochmal helft und mir sagt, ob das, was ich jetzt zu verstehen glaube, so stimmt:
Mit dem VE wird weder der Code der Pythoninstallation in meinem System, noch der Code in meinem Projekt geändert. Es wird nur festgelegt, auf welche Pythonversion und welche Bibliotheken aus meinem Projet zugegriffen wird. So ähnlich wie gitignore festlegt, was gespeichert wird.
Aber das:
... wo liegt hier der Unterschied?
Aber noch was:
Ich wollte jetzt das, an anderer Stelle beschriebene, Projekt mit dem Rechenduell mit der direkten Auswertung ohne Beamer und Geschrei in Angriff nehmen und dafür die Bibliotheken für chanels und websockets ergänzen. Diese stören aber doch mein bisheriges Projekt nicht weiter oder habe ich da was übersehen?
Die Beschreibung hat mich wieder etwas erschlagen und ich habe sie nach einiger Zeit wieder zugemacht.sparrow hat geschrieben: Donnerstag 14. November 2024, 07:19 All das wird auch in der Dokumentation sehr ausführlich erklärt und beschrieben.
STRG+F "A virtual environment is".
Dann habe ich diese hier https://docs.python.org/3/tutorial/venv.html gefunden, damit kann ich was anfangen.
... und das hier
... ist ja wohl die Übersetzung dazu.noisefloor hat geschrieben: Donnerstag 14. November 2024, 15:49 Zu venv gibt es auch einen Kapitel im Python Tutorial und dessen deutscher Übersetzung: https://pytude.readthedocs.io/de/latest/venv/.
Gruß, noisefloor
Ich habe das hier
, wie bereits berichtet, schon mal ausprobiert und, wie ebenfalls beschrieben, wollte ich dieses wieder entfernen um den Namen "test" loszuwerden. Dann habe ich aber festgestellt, dass "manage.py shell schon mal nicht mehr funktionierte.__blackjack__ hat geschrieben: Mittwoch 13. November 2024, 18:10 @Pitwheazle: Das hätte man jetzt aber auch einfach ausprobieren können:Das Verzeichnis wird also erstellt und muss/darf nicht bereits existieren. Nach dem erstellen sind die entsprechenden Programme im ``bin/``-Verzeichnis in dem venv-Verzeichnis.Code: Alles auswählen
$ ls test_venv ls: cannot access 'test_venv': No such file or directory $ python3 -m venv test_venv $ ls test_venv bin include lib lib64 pyvenv.cfg
Ich habe den Ordner einfach entfernt und dann ging das wieder.
Es wäre schön, wenn ihr mir jetzt nochmal helft und mir sagt, ob das, was ich jetzt zu verstehen glaube, so stimmt:
Mit dem VE wird weder der Code der Pythoninstallation in meinem System, noch der Code in meinem Projekt geändert. Es wird nur festgelegt, auf welche Pythonversion und welche Bibliotheken aus meinem Projet zugegriffen wird. So ähnlich wie gitignore festlegt, was gespeichert wird.
Aber das:
klingt doch viel komplizierter als:DeaD_EyE hat geschrieben: Mittwoch 13. November 2024, 17:06 Man kann das venv entweder mittels source aktivieren:Oder man führt einfach direkt den Python-Interpreter mit dem Programm aus:Code: Alles auswählen
source /home/USER/venv_rechentrainer/bin/activate
Die Installation des venv ist auch recht einfach:Code: Alles auswählen
source /home/USER/venv_rechentrainer/bin/pyhon /home/USER/PROGRAMM/main.py
Die Installation der Pakete kann man manuell mit pip vornehmen. Das Aktivieren nicht vergessen, bevor Befehle wie pip oder python mit dem venv verwendet werden sollen. Mach das erstmal mit dem venv, später kannst du ggf. auf etwas umsteigen, dass all diese Vorgänge automatisiert: Pakete aktualisieren, Code-Formatierung, Tests ausführen usw.Code: Alles auswählen
python -m venv /home/USER/venv_rechentrainer
Code: Alles auswählen
python -m venv tutorial-env
Aber noch was:
Ich wollte jetzt das, an anderer Stelle beschriebene, Projekt mit dem Rechenduell mit der direkten Auswertung ohne Beamer und Geschrei in Angriff nehmen und dafür die Bibliotheken für chanels und websockets ergänzen. Diese stören aber doch mein bisheriges Projekt nicht weiter oder habe ich da was übersehen?
Hallo,
das klingt nicht komplizierter, dass ist das Gleiche.
Damit erstellst du in dem Verzeichnis in dem du dich befindest eine virtuelle Entwicklungsumgebung. Den Ordner dazu nennt sich in dem Fall `tutorial-env`. In diesem befindet sich ein Ordner `bin` und darin eine ausführbare Datei `activate`. Wenn du diese ausführst ist deine Umgebung aktivert und wenn du jetzt etwas mit `pip` installierst, wird es nur für diese Umgebung installiert und wenn du etwas mit `python` ausführst, dann wird das Python mit den eben installierten Bibliotheken ausgeführt.
Deine letzte Frage verstehe ich nicht ganz. Wenn du zu deinem Projekt weitere Bibliotheken installierst, dann sollte dass auf den Programmablauf keinen Einfluss haben.
Grüße
Dennis
das klingt nicht komplizierter, dass ist das Gleiche.
Code: Alles auswählen
python -m venv tutorial-env
Deine letzte Frage verstehe ich nicht ganz. Wenn du zu deinem Projekt weitere Bibliotheken installierst, dann sollte dass auf den Programmablauf keinen Einfluss haben.
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
- noisefloor
- User
- Beiträge: 4172
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
Korrekt. Mit Hilfe eines venvs kann man quasi beliebig viele Python-Installation unabhängig voneinander nebeneinander haben und darin dann beliebige Module nachinstallieren. BTW: wirklich niemand kürzt virtual environment mit VE ab... entweder ausschreiben oder venv schreiben.Mit dem VE wird weder der Code der Pythoninstallation in meinem System, noch der Code in meinem Projekt geändert. Es wird nur festgelegt, auf welche Pythonversion und welche Bibliotheken aus meinem Projet zugegriffen wird.
Absoluter Pfad vs. relativer Pfad.... wo liegt hier der Unterschied?
Du kannst beliebig viele Python-Module nachinstallieren, stören tut da nichts. Wenn du die Module nicht importierst "sieht" dein Projekt die doch gar nicht. Aber wieso Channels und Websockets? Channels implementiert Websockets für Django.und dafür die Bibliotheken für chanels und websockets ergänzen. Diese stören aber doch mein bisheriges Projekt nicht weiter oder habe ich da was übersehen?
Gruß, noisefloor