[gelöst] eyeD3 über PIP installieren

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Richard
Beiträge: 542
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

[gelöst] eyeD3 über PIP installieren

Beitrag von Richard » 04.05.2021 14:44:23

Hi,

ich habe mir ein Script gebastelt um meine MP3-Sammlung auf Grundlage der Ordnerstruktur automatisch zu taggen mit eyeD3. Es läuft über die Kommandozeile. Das Script funktionierte früher deutlich schneller, inzwischen kommt da immer eine Fehlermeldung wegen eines fehlenden Plugins (lastfm.py), welches ich aber nicht benötige. Das Script und eyeD3 taggen alles problemlos. Ich habe aber den Eindruck, durch diese Meldung läuft alles langsamer als vorher. Da in den Paketquellen eine ältere Version (0.8.10 zu aktuellen 0.9.6) von eyed3 liegt bekomme ich die Meldung auch nicht weg, auch wenn ich das Plugin nachinstalliere. Ich will aber wegen sowas nicht erst eyed3 aus den Quellen kompilieren.

Es sollte aber über PIP eine aktuelle 0.9.6 installierbar sein: https://pypi.org/project/eyed3/#description. Ich hab jetzt erstmal eyed3 per "apt" deinstalliert. Hier sieht es aber so aus als sei die Version noch da:

Code: Alles auswählen

pip3 show eyed3
Name: eyeD3
Version: 0.8.10
Summary: Python audio data toolkit (ID3 and MP3)
Home-page: http://eyed3.nicfit.net/
Author: Travis Shirk
Author-email: travis@pobox.com
License: GNU GPL v3.0
Location: /usr/lib/python3/dist-packages
Requires: 
Required-by: 
Versuche ich eyed3 über "pip3 install eyed3" zu installieren kommt
Requirement already satisfied: eyed3 in /usr/lib/python3/dist-packages (0.8.10)
Zum einen wird hier die alte Version angezeigt, zum anderen wird nichts installiert. Kommt PIP hier durcheinander weil das Tool vorher über apt installiert war?

Richard
Zuletzt geändert von Richard am 08.05.2021 12:07:31, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Moderator
Beiträge: 7784
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: eyeD3 über PIP installieren

Beitrag von smutbert » 04.05.2021 23:50:27

Es macht gar nichts, wenn das eyed3 bereits installiert ist. Ein

Code: Alles auswählen

pip3 install --upgrade eyed3
sollte das gewünschte Ergebnis bringen, aber es gibt da meiner Meinung nach noch ein besseres Tool, das für jedes so installierte python-Paket eine eigene virtuelle Umgebung (venv) einrichtet. Mir will blöderweise nur gerade der Name nicht einfallen – vielleicht komme ich noch drauf...

Benutzeravatar
hikaru
Moderator
Beiträge: 11529
Registriert: 09.04.2008 12:48:59

Re: eyeD3 über PIP installieren

Beitrag von hikaru » 05.05.2021 00:15:31

smutbert hat geschrieben: ↑ zum Beitrag ↑
04.05.2021 23:50:27
Es macht gar nichts, wenn das eyed3 bereits installiert ist.
Da meine Erfahrung mit pip nahe Null ist, will ich das nicht in Zweifel ziehen.

Aber:
Richard hat geschrieben: ↑ zum Beitrag ↑
04.05.2021 14:44:23
Ich hab jetzt erstmal eyed3 per "apt" deinstalliert.
[..]
Versuche ich eyed3 über "pip3 install eyed3" zu installieren kommt
Requirement already satisfied: eyed3 in /usr/lib/python3/dist-packages (0.8.10)
Zum einen wird hier die alte Version angezeigt, zum anderen wird nichts installiert. Kommt PIP hier durcheinander weil das Tool vorher über apt installiert war?
Debianeyed3 zieht als Abhängigkeit Debianpython3-eyed3 nach sich. Dort wiederum gibt es einen Ordner /usr/lib/python3/dist-packages/eyed3
Und so wie ich es verstanden habe ist Debianpython3-eyed3 nach wie vor installiert.

Benutzeravatar
smutbert
Moderator
Beiträge: 7784
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: eyeD3 über PIP installieren

Beitrag von smutbert » 05.05.2021 00:38:48

Stimmt, aber ich glaube nicht, dass das etwas macht. Ich habe pip schon öfter verwendet um neuere Versionen zu bekommen und es hat soweit ich mich erinnere noch nie geschadet, wenn die Pakete in der Paketverwaltung von Debian bereits installiert waren.

pip installiert ja auch nach »/usr/local/...« bzw. als normaler Benutzer, was ich immer vorziehen würde, »~/.local/...«. Unübersichtlich wird das mit pip aber trotzdem schnell, zumindest habe ich es so empfunden.

Mir ist jetzt das andere Tool wieder eingefallen, es heißt Debianpipenv:

Code: Alles auswählen

pipenv install eyed3
pipenv update eyed3

Richard
Beiträge: 542
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: eyeD3 über PIP installieren

Beitrag von Richard » 05.05.2021 13:16:03

Das Paket war in der Tat noch installiert, hat aber am grundlegenden Verhalten nichts geändert.

Ich habe mal pipenv versucht. Da kommt

Code: Alles auswählen

pipenv install eyed3
Creating a virtualenv for this project…
Using /usr/bin/python3 (3.8.5) to create virtualenv…
⠋created virtual environment CPython3.8.5.final.0-64 in 132ms
  creator CPython3Posix(dest=/home/richard/.local/share/virtualenvs/richard-jy0epQIs, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, pkg_resources=latest, via=copy, app_data_dir=/home/richard/.local/share/virtualenv/seed-app-data/v1.0.1.debian.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

Virtualenv location: /home/richard/.local/share/virtualenvs/richard-jy0epQIs
Creating a Pipfile for this project…
Installing eyed3…
Looking in indexes: https://pypi.python.org/simple
Collecting eyed3
  Downloading eyeD3-0.9.6-py3-none-any.whl (245 kB)
Collecting filetype<2.0.0,>=1.0.7
  Downloading filetype-1.0.7-py2.py3-none-any.whl (15 kB)
Collecting coverage[toml]<6.0.0,>=5.3.1
  Downloading coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl (245 kB)
Collecting deprecation<3.0.0,>=2.1.0
  Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Collecting toml; extra == "toml"
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting packaging
  Downloading packaging-20.9-py2.py3-none-any.whl (40 kB)
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Installing collected packages: filetype, toml, coverage, pyparsing, packaging, deprecation, eyed3
Successfully installed coverage-5.5 deprecation-2.1.0 eyed3-0.9.6 filetype-1.0.7 packaging-20.9 pyparsing-2.4.7 toml-0.10.2

Adding eyed3 to Pipfile's [packages]…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c0a6e1)!
Installing dependencies from Pipfile.lock (c0a6e1)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 7/7 — 00:00:01
To activate this project's virtualenv, run the following:
 $ pipenv shell
Ich hab keine Ahnung ob das jetzt installiert ist oder nicht. Aufruf mit 'eyed3' resultiert in der Meldung es sei nicht installiert. Sollten mit pipenv installierte Anwendungen auch mit

Code: Alles auswählen

pip3 show <app>
gefunden werden?

Benutzeravatar
smutbert
Moderator
Beiträge: 7784
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: eyeD3 über PIP installieren

Beitrag von smutbert » 05.05.2021 16:30:10

Es ist installiert und zwar in einer virtuellen Umgebung in »~/.local/share/virtualenvs/richard-jy0epQIs«. Damit du es einfach ausführen kannst, kannst du eine Shell in diesem venv starten:

Code: Alles auswählen

pipenv shell
dort lässt sich eveD3 ganz normal starten, die python-Bibliotheken lassen sich importieren und auch

Code: Alles auswählen

pip3 show <app>
sollte funktionieren.

»~/.local/bin« ist, wenn ich mich recht erinnere, per default im Suchpfad, aber nur wenn es tatsächlich existiert. Hat es das vorher nicht getan, musst du dich eventuell neu anmelden.


(Entschuldige, es ist mir obendrein fürchterlich peinlich, ich habe pipenv mit Debianpipsi verwechselt, die Namen pip(3), pipi, pipsi, peepee, pipx, pipenv,... sind einfach zu ähnlich.
Mehr schreibe ich jetzt erst einmal gar nicht über die Unterschiede, um nicht noch Verwirrung zu stiften – ans Ziel kommst du mit allen diesen Tools und die Deinstallation von python-Paketen bzw. das Löschen einer ganzen virtuellen Umgebung ist auch bei allen diesen Tools ein Kinderspiel.)

Richard
Beiträge: 542
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: eyeD3 über PIP installieren

Beitrag von Richard » 08.05.2021 11:11:22

Scheinbar kann man das gleiche Python-Paket (oder verschiedene Versionen davon?) einmal mit pip3 und einmal mit pipenv installieren?

Ich habe jetzt auf 2 Rechnern (auf einem davon hab ich noch nie Python nachinstalliert) versucht eyed3 mit pip3 zu installieren, schon bei der Suche kommt

Code: Alles auswählen

pip3 search eyed3
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 186, in _main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/search.py", line 52, in run
    pypi_hits = self.search(query, options)
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/search.py", line 71, in search
    hits = pypi.search({'name': query, 'summary': query}, 'or')
  File "/usr/lib/python3.8/xmlrpc/client.py", line 1109, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python3.8/xmlrpc/client.py", line 1450, in __request
    response = self.__transport.request(
  File "/usr/lib/python3/dist-packages/pip/_internal/network/xmlrpc.py", line 38, in request
    return self.parse_response(response.raw)
  File "/usr/lib/python3.8/xmlrpc/client.py", line 1341, in parse_response
    return u.close()
  File "/usr/lib/python3.8/xmlrpc/client.py", line 655, in close
    raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault -32500: "RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.">
Ich hab es jetzt direkt über die WHL-Datei installiert, das scheint zu gehen.

JTH
Moderator
Beiträge: 1057
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: eyeD3 über PIP installieren

Beitrag von JTH » 08.05.2021 11:34:21

Richard hat geschrieben: ↑ zum Beitrag ↑
08.05.2021 11:11:22
Scheinbar kann man das gleiche Python-Paket (oder verschiedene Versionen davon?) einmal mit pip3 und einmal mit pipenv installieren?
Ja. Du kannst es theoretisch sogar 4 mal installieren (nicht, dass das unbedingt sinnvoll ist): über die Paketverwaltung (nach /usr/lib/python*), mit pip systemweit (nach /usr/local/lib/python*, mit pip „benutzerweit“ (nach ~/.local/lib/python*) und letztendlich in eine venv/virtualenv (das ist dann ein beliebiger Pfad). Von den letzeren beiden würde, normalerweise, aber nur eins benutzt, je nach dem, ob man gerade eine venv aktiv hat oder nicht.

Wo gerade nach den Paketen gesucht wird, kannst du z.B. mit folgendem Schnipsel nachvollziehen:

Code: Alles auswählen

python3 -c "import sys; print(sys.path)"

Richard hat geschrieben: ↑ zum Beitrag ↑
08.05.2021 11:11:22
Ich habe jetzt auf 2 Rechnern (auf einem davon hab ich noch nie Python nachinstalliert) versucht eyed3 mit pip3 zu installieren, schon bei der Suche kommt

Code: Alles auswählen

pip3 search eyed3
xmlrpc.client.Fault: <Fault -32500: "RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.">
Da hat pypi.org anscheinend eine API dauerhaft abgeschaltet.

Benutzeravatar
smutbert
Moderator
Beiträge: 7784
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: eyeD3 über PIP installieren

Beitrag von smutbert » 08.05.2021 11:37:45

pip3 search funktioniert bei mir auch nicht, wenn auch mit einer kürzeren Fehlermeldung ohne Exception und zumindest in meiner Variante ist das bekannt und Absicht [1]:

Code: Alles auswählen

$ pip3 search eyed3
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.
[1] https://stackoverflow.com/questions/663 ... ip-install

Antworten