【问题标题】:Linux | Python | `OSError: [Errno 2] No such file or directory` & `MemoryError`Linux |蟒蛇 | `OSError: [Errno 2] No such file or directory` & `MemoryError`
【发布时间】:2018-01-21 21:28:01
【问题描述】:
root@raspberrypi:/home/pi/Downloads/dejavu# python2 ./example.py
######## filename: mp3/Brad-Sucks--Total-Breakdown.mp3
Failed fingerprinting
Traceback (most recent call last):
  File "/home/pi/Downloads/dejavu/dejavu/__init__.py", line 79, in fingerprint_d   irectory
    song_name, hashes, file_hash = iterator.next()
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 659, in next
    raise value
OSError: [Errno 2] No such file or directory
Traceback (most recent call last):
  File "./example.py", line 17, in <module>
    song = djv.recognize(FileRecognizer, "/home/pi/Downloads/dejavu/mp3/Brad-Suc   ks--Total-Breakdown.mp3")
  File "/home/pi/Downloads/dejavu/dejavu/__init__.py", line 169, in recognize
    return r.recognize(*options, **kwoptions)
  File "/home/pi/Downloads/dejavu/dejavu/recognize.py", line 41, in recognize
    return self.recognize_file(filename)
  File "/home/pi/Downloads/dejavu/dejavu/recognize.py", line 29, in recognize_fi   le
    frames, self.Fs, file_hash = decoder.read(filename, self.dejavu.limit)
  File "/home/pi/Downloads/dejavu/dejavu/decoder.py", line 51, in read
    audiofile = AudioSegment.from_file(filename)
  File "/usr/local/lib/python2.7/dist-packages/pydub/audio_segment.py", line 505   , in from_file
    p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subp   rocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

有人可以帮助我吗?我是python的新手。

我想运行一个 Python 项目,它在树莓派零 W 中被证明是正确的,它上面的系统是 Debian 之类的 linux,我已经安装了 Python 2 和 python 3。

当我杀死上面的错误时,又出现了另一个错误,如下所示:

root@raspberrypi:/home/pi/Downloads/dejavu# python2 example.py                     ######## filename: mp3/Brad-Sucks--Total-Breakdown.mp3
Fingerprinting channel 1/2 for mp3/Brad-Sucks--Total-Breakdown.mp3
Failed fingerprinting
Traceback (most recent call last):
  File "/home/pi/Downloads/dejavu/dejavu/__init__.py", line 79, in fingerprint_directory
    song_name, hashes, file_hash = iterator.next()
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 659, in next
    raise value
MemoryError
Traceback (most recent call last):
  File "example.py", line 17, in <module>
    song = djv.recognize(FileRecognizer, "/home/pi/Downloads/dejavu/mp3/Brad-Sucks--Total-Breakdown.mp3")
  File "/home/pi/Downloads/dejavu/dejavu/__init__.py", line 169, in recognize
    return r.recognize(*options, **kwoptions)
  File "/home/pi/Downloads/dejavu/dejavu/recognize.py", line 41, in recognize
    return self.recognize_file(filename)
  File "/home/pi/Downloads/dejavu/dejavu/recognize.py", line 32, in recognize_file
    match = self._recognize(*frames)
  File "/home/pi/Downloads/dejavu/dejavu/recognize.py", line 17, in _recognize
    matches.extend(self.dejavu.find_matches(d, Fs=self.Fs))
  File "/home/pi/Downloads/dejavu/dejavu/__init__.py", line 118, in find_matches
    hashes = fingerprint.fingerprint(samples, Fs=Fs)
  File "/home/pi/Downloads/dejavu/dejavu/fingerprint.py", line 83, in fingerprint
    noverlap=int(wsize * wratio))[0]
  File "/usr/lib/python2.7/dist-packages/matplotlib/mlab.py", line 1315, in specgram
    mode=mode)
  File "/usr/lib/python2.7/dist-packages/matplotlib/mlab.py", line 759, in _spectral_helper
    result = np.conjugate(result) * result
MemoryError

有人遇到过类似的问题吗?

【问题讨论】:

  • 请提供您的代码,以便我们为您提供帮助。
  • 不需要代码,看起来没有“/home/pi/Downloads/dejavu/mp3/Brad-Suc ks--Total-Breakdown.mp3”这样的文件,我相信额外的空格是原因
  • git.oschina.net/leochan007/dejavu,你能得到这个网站的代码吗?
  • @k.biao 不,我们不能。请在此处发布相关代码摘录。
  • @ifconfig git.oschina.net/leochan007/dejavugithub.com/worldveil/dejavu 。这些是代码,我都运行它们,发生同样的错误。你可以尝试运行它吗?谢谢

标签: python linux python-2.7


【解决方案1】:

解决方法OSError: [Errno 2] No such file or directory

安装FFmpegLibav

因为FFmpeg几乎被Linux淘汰了,我安装了Libva

sudo apt-get install libav-tools

解决方法MemoryError

将一个小mp3文件改成指纹识别

因为我的 CPU 内存太小,无法处理大文件

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2017-07-05
    • 2018-11-20
    • 2018-07-24
    • 1970-01-01
    • 2019-03-25
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多