Hello, I was just getting started with Meltano and...
# singer-targets
m
Hello, I was just getting started with Meltano and was following the demo, but when I tried to add loader
target-gcs
it is failing due to a dependency mismatch between python 3.13, singer-sdk, and pendulum. Even when I specify the python version it still attempts to use python 3.13.3. Is there a way to resolve this?
Copy code
(venv) matthewyoshida@Mac demo % meltano add target-gcs --python python3.12
Loader 'target-gcs' already exists in your Meltano project
To add it to your project another time so that each can be configured differently,
add a new plugin inheriting from the existing one with its own unique name:
        meltano add loader target-gcs--new --inherit-from target-gcs

2025-07-17T00:48:27.963244Z [info     ] Installing loader 'target-gcs'
2025-07-17T00:48:28.768004Z [error    ] Loader 'target-gcs' could not be installed: Failed to install plugin 'target-gcs'. details='Using Python 3.13.3 environment at: .meltano/loaders/target-gcs/venv\nResolved 61 packages in 277ms\n   Building simplejson==3.11.1\n   Building pendulum==2.1.2\n   Building ciso8601==2.3.2\nDownloading google-api-python-client (13.0MiB)\n  × Failed to build `pendulum==2.1.2`\n  ├─▶ The build backend returned an error\n  ╰─▶ Call to `poetry.core.masonry.api.build_wheel` failed (exit status: 1)\n\n      [stderr]\n      The "poetry.dev-dependencies" section is deprecated and will be removed\n      in a future version. Use "poetry.group.dev.dependencies" instead.\n      Traceback (most recent call last):\n        File\n      "/Users/matthewyoshida/.cache/uv/sdists-v9/pypi/pendulum/2.1.2/ijtc7moTATOlH6ASYhOpQ/src/build.py",\n      line 5, in <module>\n          from distutils.command.build_ext import build_ext\n      ModuleNotFoundError: No module named \'distutils\'\n      Traceback (most recent call last):\n        File "<string>", line 11, in <module>\n          wheel_filename =\n      backend.build_wheel("/Users/matthewyoshida/.cache/uv/builds-v0/.tmpERwHEI",\n      {}, None)\n        File\n      "/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/lib/python3.13/site-packages/poetry/core/masonry/api.py",\n      line 58, in build_wheel\n          return WheelBuilder.make_in(\n                 ~~~~~~~~~~~~~~~~~~~~^\n              poetry,\n              ^^^^^^^\n          ...<2 lines>...\n              config_settings=config_settings,\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n          )\n          ^\n        File\n      "/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py",\n      line 95, in make_in\n          wb.build(target_dir=directory)\n          ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n        File\n      "/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py",\n      line 134, in build\n          self._build(zip_file)\n          ~~~~~~~~~~~^^^^^^^^^^\n        File\n      "/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py",\n      line 183, in _build\n          self._run_build_script(self._package.build_script)\n          ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        File\n      "/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py",\n      line 304, in _run_build_script\n          subprocess.check_call([self.executable.as_posix(), build_script])\n          ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        File\n      "/opt/homebrew/Cellar/python@3.13/3.13.3/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py",\n      line 419, in check_call\n          raise CalledProcessError(retcode, cmd)\n      subprocess.CalledProcessError: Command\n      \'[\'/Users/matthewyoshida/.cache/uv/builds-v0/.tmp2MF2JY/bin/python\',\n      \'build.py\']\' returned non-zero exit status 1.\n\n      hint: This usually indicates a problem with the package or the build\n      environment.\n  help: `pendulum` (v2.1.2) was included because `target-gcs` (v1.1.0) depends\n        on `singer-sdk` (v0.5.0) which depends on `pendulum`\n'
2025-07-17T00:48:28.769152Z [error    ] Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to join our friendly Slack community.

Failed to install plugin(s)
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /Users/matthewyoshida/.local/pipx/venvs/meltano/lib/python3.13/site-packages │
│ /meltano/cli/__init__.py:105 in _run_cli                                     │
│                                                                              │
│   102 │   """                                                                │
│   103 │   try:                                                               │
│   104 │   │   try:                                                           │
│ ❱ 105 │   │   │   cli(obj={"project": None})                                 │
│   106 │   │   except ProjectReadonly as err:                                 │
│   107 │   │   │   raise CliError(                                            │
│   108 │   │   │   │   f"The requested action could not be completed: {err}", │
│                                                                              │
│ /Users/matthewyoshida/.local/pipx/venvs/meltano/lib/python3.13/site-packages │
│ /click/core.py:1442 in __call__                                              │
│                                                                              │
│   1439 │                                                                     │
│   1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:       │
│   1441 │   │   """Alias for :meth:`main`."""                                 │
│ ❱ 1442 │   │   return self.main(*args, **kwargs)                             │
│   1443                                                                       │
│   1444                                                                       │
│   1445 class _FakeSubclassCheck(type):                                       │
│                                                                              │
│                           ... 13 frames hidden ...                           │
│                                                                              │
│ /opt/homebrew/Cellar/python@3.13/3.13.3/Frameworks/Python.framework/Versions │
│ /3.13/lib/python3.13/asyncio/base_events.py:719 in run_until_complete        │
│                                                                              │
│    716 │   │   if not future.done():                                         │
│    717 │   │   │   raise RuntimeError('Event loop stopped before Future comp │
│    718 │   │                                                                 │
│ ❱  719 │   │   return future.result()                                        │
│    720 │                                                                     │
│    721 │   def stop(self):                                                   │
│    722 │   │   """Stop running the event loop.                               │
│                                                                              │
│ /Users/matthewyoshida/.local/pipx/venvs/meltano/lib/python3.13/site-packages │
│ /meltano/cli/add.py:231 in add                                               │
│                                                                              │
│   228 │                                                                      │
│   229 │   if success is False:                                               │
│   230 │   │   tracker.track_command_event(CliEvent.failed)                   │
│ ❱ 231 │   │   raise CliError("Failed to install plugin(s)")  # noqa: EM101   │
│   232 │                                                                      │
│   233 │   _print_plugins(plugins)                                            │
│   234 │   tracker.track_command_event(CliEvent.completed)                    │
╰──────────────────────────────────────────────────────────────────────────────╯
CliError: Failed to install plugin(s)
1
e
Try
meltano remove target-gcs
followed by
meltano add target-gcs --python python3.11
Copy code
meltano add target-gcs --python python3.11 --update
will also do it
m
Thanks that worked!
np 1