Python upgrade breaks eyeD3
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| eyed3 (Ubuntu) |
Undecided
|
Unassigned |
Bug Description
Binary package hint: eyed3
I built Python 2.6.1 from source and installed it in /usr/local/
tim@calvin:~$ /usr/bin/python -V
Python 2.5.2
tim@calvin:~$ /usr/local/
Python 2.6.1
This broke the eyeD3 command-line program, which failed with
tim@calvin:
Traceback (most recent call last):
File "/usr/bin/eyeD3", line 32, in <module>
from eyeD3 import *;
ImportError: No module named eyeD3
That's because /usr/bin/eyeD3 has a shebang line of
#!/usr/bin/env python
and, of course, that's now finding the wrong version of Python
tim@calvin:~$ /usr/bin/env python -V
Python 2.6.1
Calling with the correct version of Python fixes it.
tim@calvin:
released.mp3 [ 4.21 MB ]
-----
Time: 04:36 MPEG1, Layer III [ 128 kb/s @ 44100 Hz - Joint stereo ]
-----
ID3 v2.3:
title: Released artist: Andrew Grimm
album: Recordings year: None
track: genre: Folk (id 80)
Thus changing the shebang line of /usr/bin/eyeD3 to /usr/bin/python fixes it.
This is essentially the same issue as #199134
https:/
but not as severe, since it's an user application that is broken, rather than a system tool. And it's a matter of missing dependencies, not a broken interpreter as freedesktop.org so unkindly summarized the upstream version of that bug
http://
I reported this issue to the developer of eyeD3 back in October when it first happened to me (with Python 2.6, not 2.6.1), but I could not seem to convince him that it's a mistake to use env this way in system scripts.
But it's not really an issue with eyeD3 per se, but with the .deb that installs it. Shouldn't it re-write the shebang line to /usr/bin/python? Indeed, on my system all of the following are bugs waiting to happen:
/usr/
/usr/
/usr/
/usr/
/usr/bin/hp-align #!/usr/bin/env python
/usr/bin/hp-check #!/usr/bin/env python
/usr/bin/hp-clean #!/usr/bin/env python
/usr/
/usr/bin/hp-fab #!/usr/bin/env python
/usr/
/usr/bin/hp-info #!/usr/bin/env python
/usr/
/usr/
/usr/
/usr/bin/hp-print #!/usr/bin/env python
/usr/bin/hp-probe #!/usr/bin/env python
/usr/bin/hp-scan #!/usr/bin/env python
/usr/
/usr/bin/hp-setup #!/usr/bin/env python
/usr/
/usr/
/usr/
/usr/
/usr/
/usr/
/usr/bin/perltex #! /usr/bin/env perl
/usr/
/usr/bin/texdoctk #!/usr/bin/env perl
/usr/bin/tomboy #!/usr/bin/env bash
/usr/
In fact, I guess in my case, the Python ones have already happened. Let's see
tim@calvin:~$ /usr/bin/
python-id3 not found - diabling MP3/ID3 support
python-cddb not found - diabling CDDB support
Yup, Gtkcdlabel is now broken for the same reason (missing dependencies).
The Debian developers *prefer* /usr/bin/python and *advise* against /usr/bin/env
http://
Perhaps I should lobby them for stronger terms.
ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 8.10
Package: eyed3 0.6.16 [modified: usr/bin/eyeD3]
PackageArchitec
ProcEnviron:
PATH=/
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: eyed3
Uname: Linux 2.6.27-9-generic x86_64
Tim Heaney (theaney) wrote : | #1 |
Tim Heaney (theaney) wrote : | #3 |
Yup, works great! Thanks!
$ eyeD3
The program 'eyeD3' is currently not installed. You can install it by typing:
sudo apt install eyed3
$ sudo apt install eyed3
...
$ which eyeD3
/usr/bin/eyeD3
$ head -1 /usr/bin/eyeD3
#!/usr/bin/python
$ eyeD3 RebelBlues.mp3
/home/tim/
-------
Time: 02:05 MPEG1, Layer III [ 256 kb/s @ 44100 Hz - Stereo ]
-------
ID3 v2.4:
title: Rebel Blues
artist: Sul Rebel
album:
album artist: Sul Rebel
recording date: 2012-07-13T15:38:11
track: 0 genre: Blues (id 0)
Comment: [Description: ] [Lang: eng]
URL: http://
Comments: http://
Curators: ccCommunity, Music for Video
Copyright: Creative Commons Attribution-
-------
$ which python
/home/tim/
please try again with the last version that uses python3