Python Installationen über pip funktionieren nicht Thema ist als GELÖST markiert

User helfen sich hier bei der Manjaro XFCE Edition!
Antworten

Themen Author
Frosch
Forum Kenner
Forum Kenner
Beiträge: 184
Registriert: Sonntag 31. Januar 2021, 19:19
CPU: Intel Core i7-8700
GPU: Intel Core i7-8700
Kernel: keine Ahnung
Desktop-Variante: XFCE
GPU Treiber: keine Ahnung
Hat sich bedankt: 25 Mal
Danksagung erhalten: 2 Mal

Python Installationen über pip funktionieren nicht

#1

Beitrag 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
Benutzeravatar

Siliziumfuchs
Forum Kenner
Forum Kenner
Beiträge: 238
Registriert: Mittwoch 23. Februar 2022, 22:34
Wohnort: Hamburg
CPU: Intel® Core™ i9-11900K
GPU: NVIDIA GeForce RTX 3070
Kernel: 5.15.150-1-MANJARO (64-bit)
Desktop-Variante: KDE-Plasma 5.27.x
GPU Treiber: NVidia 550.54.14
Hat sich bedankt: 20 Mal
Danksagung erhalten: 31 Mal

Re: Python Installationen über pip funktionieren nicht

#2

Beitrag 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.

Themen Author
Frosch
Forum Kenner
Forum Kenner
Beiträge: 184
Registriert: Sonntag 31. Januar 2021, 19:19
CPU: Intel Core i7-8700
GPU: Intel Core i7-8700
Kernel: keine Ahnung
Desktop-Variante: XFCE
GPU Treiber: keine Ahnung
Hat sich bedankt: 25 Mal
Danksagung erhalten: 2 Mal

Re: Python Installationen über pip funktionieren nicht

#3

Beitrag von Frosch »

Ich habs jetzt hingekriegt mit:

Code: Alles auswählen

pip install PyP100 --break-system-packages
Benutzeravatar

jolic
Forum Kenner
Forum Kenner
Beiträge: 183
Registriert: Sonntag 5. April 2020, 22:35
CPU: i7-13700T
GPU: UHD 770
Kernel: LTS 6.12.x
Desktop-Variante: KDE (Wayland)
GPU Treiber: i915
Hat sich bedankt: 30 Mal
Danksagung erhalten: 46 Mal

Re: Python Installationen über pip funktionieren nicht

#4

Beitrag 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.

Themen Author
Frosch
Forum Kenner
Forum Kenner
Beiträge: 184
Registriert: Sonntag 31. Januar 2021, 19:19
CPU: Intel Core i7-8700
GPU: Intel Core i7-8700
Kernel: keine Ahnung
Desktop-Variante: XFCE
GPU Treiber: keine Ahnung
Hat sich bedankt: 25 Mal
Danksagung erhalten: 2 Mal

Re: Python Installationen über pip funktionieren nicht

#5

Beitrag 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.
Benutzeravatar

jolic
Forum Kenner
Forum Kenner
Beiträge: 183
Registriert: Sonntag 5. April 2020, 22:35
CPU: i7-13700T
GPU: UHD 770
Kernel: LTS 6.12.x
Desktop-Variante: KDE (Wayland)
GPU Treiber: i915
Hat sich bedankt: 30 Mal
Danksagung erhalten: 46 Mal

Re: Python Installationen über pip funktionieren nicht

#6

Beitrag 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.
Antworten