NameError: name 'moviepy' is not defined after pip install moviepy

NameError: name 'moviepy' is not defined after pip install moviepy

我 运行 我的 moviepy 安装遇到了问题,但我不知道哪里出了问题。我已经尝试过 pip install moviepy,它说所有要求都已满足,但是在我的编辑器中,当我尝试“from moviepy.editor import *”时,moviepy 带有下划线并显示““moviepy”:未知词。”我试过 运行ning pip uninstall moviepy 并重新安装它,但没有用。我在同一个项目中使用 selenium,它工作正常,这就是我感到困惑的原因,但如果有人知道该怎么做,我将非常感激。

如果需要,这里是代码,如果你想让我尝试运行宁一些东西,请告诉我。

main.py

from get_clips import get_clips
from download_clips import download_clips
from upload_clips import upload_clips
from edit_clips import edit_clips

if __name__ == "__main__":
    clips = get_clips()
    download_clips(clips)
    edit_clips(clips)
    #upload_clips(clips)

    print('done')

edit_clips.py

from moviepy.editor import *

def edit_clips(clips):
    for clip in clips:
        video = moviepy.editor.VideoFileClip('D:/zgarw/Documents/Projects/autoclip/tmp/' + clip['slug'] + '.mp4')
        video_duration = int(video.duration)
        print(video_duration)

这是我在 运行 代码时遇到的错误。

Traceback (most recent call last):
  File "c:\Users\zgarw\Documents\Projects\autoclip\main.py", line 9, in <module>
    edit_clips(clips)
  File "c:\Users\zgarw\Documents\Projects\autoclip\edit_clips.py", line 6, in edit_clips
    video = moviepy.editor.VideoFileClip('D:/zgarw/Documents/Projects/autoclip/tmp/' + clip['slug'] + '.mp4')
NameError: name 'moviepy' is not defined

您收到错误是因为您尚未将名称 moviepy 导入当前命名空间。相反,您导入了 moviepy.editor 的所有 public 成员。将您的代码更改为

video = VideoFileClip('D:/zgarw/Documents/Projects/autoclip/tmp/' + clip['slug'] + '.mp4')

它应该 运行 没问题。如果您想访问 moviepy 的其他模块或使用您的原始代码,只需执行 import moviepy.

如果您只使用 VideoFileClip,那么您可以将 edit_clips.py 编辑为 :

from moviepy.editor import VideoFileClip
def edit_clips(clips):
    for clip in clips:
        video = VideoFileClip('D:/zgarw/Documents/Projects/autoclip/tmp/' + clip['slug'] + '.mp4')
        video_duration = int(video.duration)
        print(video_duration)

因为一般使用 import 语句 as

从模块导入 *

会污染命名空间,是个坏习惯。