Skip to content

Pydub dependency is causing problems even when audio isn't wanted #528

@KTibow

Description

@KTibow
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\pydub\utils.py:14 in <module>       │
│                                                                                                  │
│    11 from functools import wraps                                                                │
│    12                                                                                            │
│    13 try:                                                                                       │
│ ❱  14 │   import audioop                                                                         │
│    15 except ImportError:                                                                        │
│    16 │   import pyaudioop as audioop                                                            │
│    17                                                                                            │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'audioop'

During handling of the above exception, another exception occurred:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in _run_module_as_main:198                                                                       │
│ in _run_code:88                                                                                  │
│                                                                                                  │
│ in <module>:10                                                                                   │
│                                                                                                  │
│    7 │   │   sys.argv[0] = sys.argv[0][:-11]                                                     │
│    8 │   elif sys.argv[0].endswith(".exe"):                                                      │
│    9 │   │   sys.argv[0] = sys.argv[0][:-4]                                                      │
│ ❱ 10 │   sys.exit(main())                                                                        │
│   11                                                                                             │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\pufferlib\pufferl.py:1538 in main                           │
│                                                                                                  │
│   1535 │   mode = sys.argv.pop(1)                                                                │
│   1536 │   env_name = sys.argv.pop(1)                                                            │
│   1537 │   if mode == 'train':                                                                   │
│ ❱ 1538 │   │   train(env_name=env_name)                                                          │
│   1539 │   elif mode == 'eval':                                                                  │
│   1540 │   │   eval(env_name=env_name)                                                           │
│   1541 │   elif mode == 'sweep':                                                                 │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\pufferlib\pufferl.py:1082 in train                          │
│                                                                                                  │
│   1079 │   if args['neptune']:                                                                   │
│   1080 │   │   logger = NeptuneLogger(args)                                                      │
│   1081 │   elif args['wandb']:                                                                   │
│ ❱ 1082 │   │   logger = WandbLogger(args)                                                        │
│   1083 │                                                                                         │
│   1084 │   train_config = {**args['train'], 'env': env_name}                                     │
│   1085 │   pufferl = PuffeRL(train_config, vecenv, policy, logger)                               │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\pufferlib\pufferl.py:1006 in __init__                       │
│                                                                                                  │
│   1003                                                                                           │
│   1004 class WandbLogger:                                                                        │
│   1005 │   def __init__(self, args, load_id=None, resume='allow'):                               │
│ ❱ 1006 │   │   import trackio as wandb                                                           │
│   1007 │   │                                                                                     │
│   1008 │   │   wandb.init(                                                                       │
│   1009 │   │   │   id=load_id or wandb.util.generate_id(),                                       │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\trackio\__init__.py:29 in <module>  │
│                                                                                                  │
│     26 from trackio.imports import import_csv, import_tf_events                                  │
│     27 from trackio.launch import launch_trackio_dashboard                                       │
│     28 from trackio.markdown import Markdown                                                     │
│ ❱   29 from trackio.media import (                                                               │
│     30 │   TrackioAudio,                                                                         │
│     31 │   TrackioImage,                                                                         │
│     32 │   TrackioVideo,                                                                         │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\trackio\media\__init__.py:10 in     │
│ <module>                                                                                         │
│                                                                                                  │
│    7 - Audio conversion utilities                                                                │
│    8 """                                                                                         │
│    9                                                                                             │
│ ❱ 10 from trackio.media.audio import TrackioAudio                                                │
│   11 from trackio.media.image import TrackioImage                                                │
│   12 from trackio.media.media import TrackioMedia                                                │
│   13 from trackio.media.utils import get_project_media_path                                      │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\trackio\media\audio.py:8 in         │
│ <module>                                                                                         │
│                                                                                                  │
│     5 from typing import Literal                                                                 │
│     6                                                                                            │
│     7 import numpy as np                                                                         │
│ ❱   8 from pydub import AudioSegment                                                             │
│     9                                                                                            │
│    10 from trackio.media.media import TrackioMedia                                               │
│    11 from trackio.media.utils import check_ffmpeg_installed, check_path                         │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\pydub\__init__.py:1 in <module>     │
│                                                                                                  │
│ ❱ 1 from .audio_segment import AudioSegment                                                      │
│   2                                                                                              │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\pydub\audio_segment.py:11 in        │
│ <module>                                                                                         │
│                                                                                                  │
│      8 import sys                                                                                │
│      9 import struct                                                                             │
│     10 from .logging_utils import log_conversion, log_subprocess_output                          │
│ ❱   11 from .utils import mediainfo_json, fsdecode                                               │
│     12 import base64                                                                             │
│     13 from collections import namedtuple                                                        │
│     14                                                                                           │
│                                                                                                  │
│ C:\Users\[me]\Documents\PufferLib\.venv\Lib\site-packages\pydub\utils.py:16 in <module>       │
│                                                                                                  │
│    13 try:                                                                                       │
│    14 │   import audioop                                                                         │
│    15 except ImportError:                                                                        │
│ ❱  16 │   import pyaudioop as audioop                                                            │
│    17                                                                                            │
│    18 if sys.version_info >= (3, 0):                                                             │
│    19 │   basestring = str                                                                       │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'pyaudioop'

Pydub doesn't seem to be maintained for the latest versions of Python; ideally audio functionality wouldn't be loaded if not needed, or worst case trackio's requires python is changed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions