bionade24 Fortgeschrittener

  • aus Nürnberg, Germany
  • Mitglied seit 16. Februar 2019
  • Letzte Aktivität:
Beiträge
186
Erhaltene Likes
63
Punkte
1.008
Trophäen
2
Profil-Aufrufe
258
  • Hi,

    da Du den Fehler kennst - wie installiert man denn nun 'wheel' im nachhinein?

    Ich habe pythen3 - Version 3.6.9

    Nimmt man da pip3 install wheel oder reicht auch pip install wheel.


    Da gibt es ja ne Menge Lösungen. Manche machen das auch von dem Prog abhängig, welches über pip installiert wurde. Da Radical mit dem Modul pip installiert wurde, müsste der richtige Befehl eigentlich pip install wheel lauten . Richtig?


    -volker-

    • Nein, aber erstmal sorry, dass ich vergessen habe dir die Lösung hinzuschreiben, ich dachte dein Suchvorgang hätte es schon gelöst. Als Python Dev war die Lösung für mich natürlich offensichtlich. Ein Python_wheel ist das moderne Binärdistributionsformat von python. Das alte war python_egg, außerdem gibt's noch reine Source-Pakete(Letzteres geht natürlich nur bei reiner Python-Software). Zum erstellen und installieren wird das Modul setuptools benutzt, was bei dir einfach veraltet ist. Falls du Radicale auch über deine Distributionspaketmanager bekommst, solltest du diesen präferieren. Ansonsten, mal setuptools updaten, dass Radicale kein egg mehr ausliefert is aber auch eher ein Armutszeugnis der Entwickler. Pip linkt je nach distro entweder zu py2 oder py3.


      Code
      1. sudo python3 -m pip install --upgrade pip
      2. sudo python3 -m pip install --upgrade setuptools

      Wenn du dir über die Abhängigkeiten nicht sicher bist, bitte den --user flag setzen!

    • Erst mal lieben Dank für Deine Unterstützung.

      Stimmt, eine Nachinstallation von den setuptools wurde auch irgendwo genannt.

      Für mich, als ehemaliger reiner (Windows-) Anwender, waren mir die Antworten einfach zu gemischt.


      -volker-

    • Das hat 0% was mit Linux zu tun und ist auf Windows genau das Gleiche. pip ist das Command-Line tool, um Bibliotheken für die Programmiersprache Python zu laden. Der Paketmanager ist eher ein Linux-Ding, aber mit pip solltest du als nicht Python-Dev eigentlich nie in Berührung kommen, geschweige es denn installiert zu haben. Denn pip ist nicht mal annähernd so sicher wie der Paketmanager deiner Distri, oder auch ein Paketmanager für Windows. Auf pip wird nix geprüft und jeder kann hochladen was er will.

    • Habe ich mittlerweile auch gelesen. Da ich den Radicale 2.1 anfänglich deinstallieren wollte habe ich mich gefragt wie das genau geht. Denn der Installbefehl von Radicale lautet ja:


      python -m pip install --upgrade radicale


      Im Prinzip war ich damit schon fast überfordert. :)

      Denn der genaue Wortlaut bei der Dokumentation war ja, man sollte obige Zeile entweder als root oder mit dem --user Attribut installieren.


      Ich: Häh! Ich habe mich doch ordentlich in meinem Linuxsystem angemeldet. Wieso da noch ein --user Flag. Also dann mal mit sudo. Dann kam eine Warnung, dass er den Cache in meinem ~/ Verzeichnis nicht anlegen kann, weil das Verzeichnis einen anderen Nutzer hatte.


      Ich: Wieder Häh! root > user. Naja, ist Linux mal wieder pingelig. Dann eben mit Gewalt: 'sudo -H python -m pip install --upgrade radicale'.

      Das lief dann ohne 'falscher Nutzer' durch. Am Ende stand dann die Zeile mit sucsess: radicale und 2oder 3 andere Module installiert.

      Natürlich war da noch der Fehler drin, den ich mit Deiner Hilfe auch noch lösen konnte.


      So, da ich dich als Pythen-Dev hier gerade an der Strippe habe, warum wird das Prog Radicale überhaupt so umständlich installiert. Ist das in Python geschrieben und wird durch diesen Befehl erst compiliert, oder wie?

      Ein normaler Install-Befehl lautet schließlich "sudo apt-get install Prog". Und ein deinstall "sudo apt-get purge Prog"


      Wenn es ums kompilieren geht, mit configure-Script / make / make install - da verabschiede ich mich schon. Obwohl mir das auch schon bekannt ist.

      Aber dieser Python-Befehl von oben sind für mich absolut böhmische Dörfer.


      Wie würde man denn diese --update von Pythen rückgängig machen?


      python -m pip deinstall --upgrade radicale?


      -volker-

    • Der Command lautet in deinem Fall, sudo -H python -m pip uninstall radicale --upgrade ist dafür, das bereits installierte Pakete auch geupgraded werden, denn hier beginnt der springende Punkt. Pip ist/war für Devs da, weswegen pip auch sehr konservativ gegenüber aktualisieren ist, denn wenn ein Modul unabsichtlich aktualisiert wurde, kann das Programm eventuell nicht mehr laufen.

      Pip hat drei Orte, wo Pakete hin installiert werden können.

      1. Systemweit
        --system macht das. Solange du nicht die gepatchte Debian-Version von pip hast, musst du das nicht callen, dann isses default. Dann werden deine Pakete einfach unter /usr/lib/python/ installiert, executables (aus Gründen) nach /usr/local/bin/
      2. Benutzerweit
        --user flag führt dazu. Dann werden die Pfade auf ~/.local umgebogen, du bekommst keine Dateikonflikte mit deinem Paketmanager und hast auf deinem User neuere Version, die auch nicht Programme kaputtmachen, die diese Abhängkeiten haben und per Paketmanager oder Systemweit installiert sind.
      3. In einem Virtual environment
        Da hat man eine extra Umgebung für sein Projekt, mit den speziell benötigten Modul oder python -versionen. Wenn du dieses aktiviert hast wird dorthin installiert, außer du nutzt eines der obrigen Flags. So kann man für Projekte verschiedene Versionen haben.

      Pip ist dazu da, Entwicklern Programme und Abhängigkeiten früher zu liefern, damit diese ihren Code anpassen können. Abhängigkeiten und Programme solltest du vom Paketmanager installieren, manche Projekte meinen halt die Distro-Repos sind zu alt und alle sollen pip nutzen.
      Das alles benötigt man aber nur auf furchtbar veralteten Zeug wie Debian(&Ubuntu + Derivate), wo pip natürlich viel schneller die Updates ausliefert als der Paketmanager. Wenn du Arch nutzt hast du solche Probleme bis auf Dateikonflikte nicht, da beide gleich schnell updaten, und auch Programme mit Python-Abhängigkeiten so schnell aktualisiert werden, dass man --user nicht benötigt. Wenn dir Arch Angst macht probier mal EndeavourOS.