问题描述
我正在编写一个使用moviepy库将视频转换为音频的程序。问题是我已经安装了这个库 import moviepy.editor as mp 但是当我运行我的程序时,我遇到了如下错误:
PS D:\MPhil CS\Semester 2\Multimedia Retrieval Techniques\Assignment1\MRT_Assignment1> &
'C:\Users\User\AppData\Local\Programs\Python\python39\python.exe'
'c:\Users\User\.vscode\extensions\ms-python.python-
2021.3.658691958\pythonFiles\lib\python\debugpy\launcher' '61484' '--' 'd:\MPhil CS\Semester
2\Multimedia Retrieval Techniques\Assignment1\MRT_Assignment1\mrt_retreival.py'
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\utils\timing.py",line 27,in <module>
import resource
ModuleNotFoundError: No module named 'resource'
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "d:\MPhil CS\Semester 2\Multimedia Retrieval
Techniques\Assignment1\MRT_Assignment1\mrt_retreival.py",line 5,in <module>
import moviepy.editor as mp
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-packages\moviepy\editor.py",line
56,in <module>
from .video.io.html_tools import ipython_display
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\moviepy\video\io\html_tools.py",line 22,in <module>
from IPython.display import HTML
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-packages\IPython\__init__.py",line 49,in <module>
from .terminal.embed import embed
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\terminal\embed.py",line 19,in <module>
from IPython.terminal.ipapp import load_default_config
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\terminal\ipapp.py",line 30,in <module>
from IPython.core.magics import ScriptMagics
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\core\magics\__init__.py",line 21,in <module>
from .execution import ExecutionMagics
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\core\magics\execution.py",line 46,in <module>
from IPython.utils.timing import clock,clock2
File "C:\Users\User\AppData\Local\Programs\Python\python39\lib\site-
packages\IPython\utils\timing.py",line 64,in <module>
clocku = clocks = clock = time.clock
AttributeError: module 'time' has no attribute 'clock'
我使用的是 VScode,我的 Python 版本是 3.9.0。我的代码如下:
from pytube import YouTube
from youtube_transcript_api import YouTubeTranscriptApi
import ffmpeg
import moviepy.editor as mp
# where to save
SAVE_PATH = "D:\\MPhil CS\\Semester 2\\Multimedia Retrieval
Techniques\\Assignment1\\MRT_Assignment1\\Video" #to_do
# link of the video to be downloaded
link="https://www.youtube.com/watch?v=2DFzxsy3PaM"
try:
# object creation using YouTube
# which was imported in the beginning
yt = YouTube(link)
except:
print("Connection Error") #to handle exception
try:
print("*********************** Video Title ***************************")
print(yt.title)
print("\n")
print("*********************** Video Subtitles
***************************")
srt = YouTubeTranscriptApi.get_transcript("2DFzxsy3PaM")
with open("subtitles_file.txt",'w') as f:
f.writelines('%s\n' % i for i in srt)
print("Subtitles written!!")
print("\n")
print("Downloading start...")
yt.streams.filter(file_extension= 'mp4').first().download(SAVE_PATH)
print("Video Downloaded!!")
my_clip = mp.VideoFileClip(r"D:\\MPhil CS\\Semester 2\\Multimedia
Retrieval Techniques\\Assignment1\\MRT_Assignment1\\Video\\A fight
against the norm - 1 minute spoken word poetry for introverts.mp4")
my_clip.audio.write_audiofile(r"D:\\MPhil CS\\Semester 2\\Multimedia
Retrieval Techniques\\Assignment1\\MRT_Assignment1\\Video\\abc.mp3")
print("Audio Downloaded!!")
except:
print("Some Error!")
print('Task Completed!')
我是 Python 新手,无法解决此问题。预先感谢您的帮助。
解决方法
属性错误:模块“时间”没有属性“时钟”
如果您使用 Python 38 及以上版本,时间。 clock() 已从版本 (https://bugs.python.org/issue31803) 中弃用
所以你可以使用 time.perf_counter() 而不是 time.clock()
错误发生在 import moviepy.editor as mp
内部,因此您的其余代码无关紧要。
这似乎是由 moviepy.editor
调用的 IPython 包中的一个错误。检查它是否完全是最新的。
或者,您可以完全避免 moviepy.editor
而执行 from moviepy.video.io.VideoFileClip import VideoFileClip
。