vishnubob / python-midi

Python MIDI library
MIT License
1.51k stars 370 forks source link

Ubuntu Studio 23.10 - Mary.mid example fails #191

Open CoolGames opened 9 months ago

CoolGames commented 9 months ago

@vishnubob I am looking at this with no programming skills.

Simple git clone on latest Ubuntu Studio 23.10 which is designed for Midi and more causes Traceback error when trying the example mididump.py mary.mid

$ mididump.py mary.mid
Traceback (most recent call last):
  File "/usr/local/bin/mididump.py", line 13, in <module>
    pattern = midi.read_midifile(midifile)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/midi/fileio.py", line 162, in read_midifile
    return reader.read(midifile)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/midi/fileio.py", line 11, in read
    pattern = self.parse_file_header(midifile)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/midi/fileio.py", line 18, in parse_file_header
    magic = midifile.read(4)
            ^^^^^^^^^^^^^^^^
  File "<frozen codecs>", line 322, in decode
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdc in position 13: invalid continuation byte
KoharuYuzuki commented 9 months ago

Are you using Python3? The "master" branch doesn't seem to work in Python3. Use the "feature/python3" branch instead.

Install as follows.

$ pip install midi@git+https://github.com/vishnubob/python-midi@feature/python3

Sorry for my poor English.

CoolGames commented 8 months ago

@KoharuYuzuki Still not able to get it to work

$ pip install midi@git+https://github.com/vishnubob/python-midi@feature/python3
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

So I tried

$ git clone -b feature/python3 https://github.com/vishnubob/python-midi.git
Cloning into 'python-midi'...
remote: Enumerating objects: 559, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 559 (delta 0), reused 0 (delta 0), pack-reused 558
Receiving objects: 100% (559/559), 208.06 KiB | 6.30 MiB/s, done.
Resolving deltas: 100% (322/322), done.
$ cd python-midi/
$ sudo python3 setup.py install

/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

Lots of messages but it seemed to succeed

This is still vague terminology as well


$ mididump.py mary.mid
/usr/local/bin/mididump.py:4: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  __import__('pkg_resources').run_script('midi==0.2.3', 'mididump.py')
Traceback (most recent call last):
  File "/usr/local/bin/mididump.py", line 4, in <module>
    __import__('pkg_resources').run_script('midi==0.2.3', 'mididump.py')
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 722, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1548, in run_script
    raise ResolutionError(
pkg_resources.ResolutionError: Script 'scripts/mididump.py' not found in metadata at '/usr/local/lib/python3.11/dist-packages/midi-0.2.3.egg-info'

I am still looking to understand the messages and solve it somehow.