【问题标题】:python error lib dont execute the librarypython错误库不执行库
【发布时间】:2020-03-01 08:48:12
【问题描述】:

在输入数据之前,我导入了一个库,但是这个库给出了这样的错误/

警告(来自警告模块):文件 "C:\Users\Samuel\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", 第 165 行 warn("找不到 ffmpeg 或 avconv - 默认为 ffmpeg,但可能无法工作",RuntimeWarning) RuntimeWarning: 找不到 ffmpeg 或 avconv - 默认为 ffmpeg,但可能不起作用

警告(来自警告模块):文件 "C:\Users\Samuel\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", 第 179 行 warn("找不到 ffplay 或 avplay - 默认为 ffplay,但可能不起作用", RuntimeWarning) RuntimeWarning: 找不到 ffplay 或 avplay - 默认为 ffplay,但可能不起作用

【问题讨论】:

    标签: python


    【解决方案1】:

    TL;DR:正如源代码所示,您应该安装 ffmpeg 并将其添加到您的 %PATH%。由于ffplay 附带ffmpeg,这应该可以解决您的问题。

    你可以在这里安装ffmpeghttp://ffmpeg.org/

    安装后,您可以打开控制面板,然后搜索环境。在那里你可以调整你的 %PATH% 变量。将ffmpeg 安装的二进制路径添加到%PATH%。

    这就是源代码中的原因:

    def get_encoder_name():
        """
        Return enconder default application for system, either avconv or ffmpeg
        """
        if which("avconv"):
            return "avconv"
        elif which("ffmpeg"):
            return "ffmpeg"
        else:
            # should raise exception
            warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
            return "ffmpeg"
    
    def get_player_name():
        """
        Return enconder default application for system, either avconv or ffmpeg
        """
        if which("avplay"):
            return "avplay"
        elif which("ffplay"):
            return "ffplay"
        else:
            # should raise exception
            warn("Couldn't find ffplay or avplay - defaulting to ffplay, but may not work", RuntimeWarning)
            return "ffplay"
    
    def which(program):
        """
        Mimics behavior of UNIX which command.
        """
        # Add .exe program extension for windows support
        if os.name == "nt" and not program.endswith(".exe"):
            program += ".exe"
    
        envdir_list = [os.curdir] + os.environ["PATH"].split(os.pathsep)
    
        for envdir in envdir_list:
            program_path = os.path.join(envdir, program)
            if os.path.isfile(program_path) and os.access(program_path, os.X_OK):
                return program_path
    

    由此我们可以知道它是从您的环境变量 %PATH% 中查找这些程序的。这就是为什么安装这些软件并将它们添加到您的 %PATH% 应该可以解决问题的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2018-12-07
      • 1970-01-01
      • 2014-03-05
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多