如何将新方法添加到 python 中的现有导入?特别是moviepy
How to add a new method to an existing import in python? Specifically moviepy
出于某种原因,Python 不允许我访问我在 moviepy 的 preview.py 文件中创建的自定义方法。我只想知道如何将它正确地实现到文件中。作为参考,在我更改方法名称之前,它工作正常。
我检查了至少两个 __init.py__ 文件,它们实际上是空的。我找不到方法是否在任何地方初始化,这可能是我所缺少的。
我也试过重新启动 Git Bash 也没有用(我看到的另一个解决方案)。
原文:
@convert_masks_to_RGB
def preview(clip, fps=15, audio=True, audio_fps=22050, audio_buffersize=3000,
audio_nbytes=2, fullscreen=False):
已更改:
@requires_duration
@convert_masks_to_RGB
def preview_custom(clip, marker_overlay="marker_overlay.png", fps=15, audio=True, audio_fps=22050, audio_buffersize=3000,
audio_nbytes=2, fullscreen=False):
更改后的方法与原始方法之间存在不少差异,但目前我期望的唯一结果是正确调用该方法。错误如下:
Traceback (most recent call last):
File "T3AJM.py", line 249, in <module>
main()
File "T3AJM.py", line 34, in main
GUI_main_menu()
File "T3AJM.py", line 85, in GUI_main_menu
GUI_play_markers()
File "T3AJM.py", line 125, in GUI_play_markers
video.preview_custom(marker_overlay=TEMP_OVERLAY_FILE)
AttributeError: 'VideoFileClip' object has no attribute 'preview_custom'
感谢您的宝贵时间。
我什至不确定这是否在技术上解决了问题,但只是这样做:
from moviepy.video.io.preview import *
和
preview_custom(video, marker_overlay=TEMP_OVERLAY_FILE)
已解决问题。我不知道为什么我必须改变它的调用方式,就像 clip.preview() 一样,或者在这种情况下 video.preview() 之前工作得很好,但无论如何。
出于某种原因,Python 不允许我访问我在 moviepy 的 preview.py 文件中创建的自定义方法。我只想知道如何将它正确地实现到文件中。作为参考,在我更改方法名称之前,它工作正常。
我检查了至少两个 __init.py__ 文件,它们实际上是空的。我找不到方法是否在任何地方初始化,这可能是我所缺少的。
我也试过重新启动 Git Bash 也没有用(我看到的另一个解决方案)。
原文:
@convert_masks_to_RGB
def preview(clip, fps=15, audio=True, audio_fps=22050, audio_buffersize=3000,
audio_nbytes=2, fullscreen=False):
已更改:
@requires_duration
@convert_masks_to_RGB
def preview_custom(clip, marker_overlay="marker_overlay.png", fps=15, audio=True, audio_fps=22050, audio_buffersize=3000,
audio_nbytes=2, fullscreen=False):
更改后的方法与原始方法之间存在不少差异,但目前我期望的唯一结果是正确调用该方法。错误如下:
Traceback (most recent call last):
File "T3AJM.py", line 249, in <module>
main()
File "T3AJM.py", line 34, in main
GUI_main_menu()
File "T3AJM.py", line 85, in GUI_main_menu
GUI_play_markers()
File "T3AJM.py", line 125, in GUI_play_markers
video.preview_custom(marker_overlay=TEMP_OVERLAY_FILE)
AttributeError: 'VideoFileClip' object has no attribute 'preview_custom'
感谢您的宝贵时间。
我什至不确定这是否在技术上解决了问题,但只是这样做:
from moviepy.video.io.preview import *
和
preview_custom(video, marker_overlay=TEMP_OVERLAY_FILE)
已解决问题。我不知道为什么我必须改变它的调用方式,就像 clip.preview() 一样,或者在这种情况下 video.preview() 之前工作得很好,但无论如何。