无法使用电影库

问题描述

我正在编写一个使用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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...