Seite 1 von 1

Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 00:29
von Frosch
Hallo,

ich möchte über pip eine Pythonbibliothek installieren.

pip install PyP100

Code: Alles auswählen

[frosch@xxx ~]$ pip install PyP100
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try 'pacman -S
    python-xyz', where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Arch-packaged Python package,
    create a virtual environment using 'python -m venv path/to/venv'.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip.
    
    If you wish to install a non-Arch packaged Python application,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. Make sure you have python-pipx
    installed via pacman.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Das ging doch in der Vergangenheit mal.

Viele Grüße
Ralf

Re: Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 01:43
von Siliziumfuchs
Damit man sich sein System-Python (mit Pamac bzw. pacman installiert) nicht durch wilde Installationen mittels pip (von den dann Pamac/pacman keine Kenntnis hat) kaputt macht, geht das nicht mehr.
Wie in der Fehlermeldung beschrieben nur über ein bzw. in einem virtual environment... (bzw. was in der Fehlermeldung sonst noch so beschrieben wird)

Oder man installiert sich neben dem System-Python ein weiteres Python und macht in dem Python dann mit pip was man möchte. Für diesen Zweck habe ich mir hier pyenv und pyenv-virtualenv installiert. Zu anderen Möglichkeiten sich weitere Python-Varianten zu installieren kann ich jetzt nichts sagen mangels Erfahrung.

Re: Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 14:03
von Frosch
Ich habs jetzt hingekriegt mit:

Code: Alles auswählen

pip install PyP100 --break-system-packages

Re: Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 19:06
von jolic
Nun hast du das Paket systemweit mit pip unter Verwendung des Flags '--break-system-packages' installiert. Bist du dir bewusst, dass dies zu Konflikten mit dem Paketmanager führen kann?

Als Python-Anfänger war mir ebenfalls nicht klar, dass Module aus dem Python Package über 'pip' an der Paketverwaltung vorbei installiert werden. Dies kann zu unvorhergesehenen Problemen mit Python-Skripten führen, insbesondere wenn dasselbe Python-Modul auch über die Paketverwaltung installiert ist.

Die beste und sicherste Methode ist die Verwendung von virtuellen Umgebungen, wie sie zum Beispiel von Siliziumfuchs mit 'virtualenv' vorgeschlagen wurden. Ich nutze hierfür die IDE PyCharm, die die Verwaltung virtueller Umgebungen sehr komfortabel gestaltet.

Nachtrag: Alternativ kannst du das Paket nicht systemweit, sondern nur für deinen Benutzer ohne sudo installieren. Der Befehl:
'pip install --user PyP100'
installiert das Paket in einem benutzerspezifischen Verzeichnis (bei mir ~/.local/lib/python3.10/site-packages/), wodurch keine Adminrechte erforderlich sind.

Vorteile: Keine Verwendung von sudo erforderlich, erhöht die Sicherheit deines Systems. Verhindert Konflikte mit pacman und installierte Pakete sind nur für deinen Benutzer verfügbar.
Nachteil: Wenn du an mehreren Projekten arbeitest, kann es schwierig sein, Abhängigkeiten zu verwalten, da alle Projekte auf die gleichen benutzerspezifischen Pakete zugreifen.


Ups, ich merke gerade, dass dies auch nicht mehr funktioniert und nur noch in einer virtuellen Umgebung möglich ist.

Re: Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 21:28
von Frosch
Ich habe das mit der virtuellen Umgebung versucht, aber dann kann ich das Skript auch nur in der virtuellen Umgebung ausführen.

Wie ist das denn bei anderen Distributionen? Ich hatte dieses Problem bisher nie.

Re: Python Installationen über pip funktionieren nicht

Verfasst: Montag 21. Oktober 2024, 22:24
von jolic
Mhh, ist für mich auch Neuland. Du könntest entweder ein Shell-Skript erstellen, das die virtuelle Umgebung aktiviert und dein Python-Skript ausführt, oder eine Shebang-Zeile als erste Zeile in deinem Python-Skript hinzufügen, die direkt auf den Python-Interpreter der virtuellen Umgebung verweist, zum Beispiel:

Code: Alles auswählen

#!/home/deinBenutzerName/meinprojekt/env/bin/python
Nachtrag: Habs eben getestet und es funktioniert.