Hi, while following local executable, adding 'n' t...
# troubleshooting
p
Hi, while following local executable, adding 'n' to the pip_url (for nothing to install as in the document) seems to be causing issues. does anyone have an Idea on how to resolve this? https://docs.meltano.com/guide/plugin-management/
Copy code
plugins:
  extractors:
  - name: tap-gdrive
    namespace: "tap-gdrive"
    pip_url: 'n'
    executable: tap-gdrive
Copy code
>meltano install
Extractor 'tap-gdrive' could not be installed: Failed to install plugin 'tap-gdrive'.
ERROR: Could not find a version that satisfies the requirement n (from versions: none)
ERROR: No matching distribution found for n
Copy code
>meltano invoke tap-gdrive
2024-05-06T11:49:47.226170Z [info     ] Environment 'dev' is active   
Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to
join our friendly Slack community.

Executable 'tap-gdrive' could not be found. Extractor 'tap-gdrive' may not have been installed yet using `meltano install extractor tap-gdrive`, or the executable name may be incorrect.
e
You probably don't want to run
meltano install
if you specified there's nothing to install? Otherwise, following the interactive prompts, selecting
n
actually sets
pip_url
to an empty (null) value: https://github.com/meltano/meltano/blob/9b75e897672a0e80e93602f32f7d4d4a1db0943a/src/meltano/cli/utils.py#L164 That makes me think you either actually need a valid
pip_url
or should remove it entirely since you probably typed it in manually.
👍 1
p
thanks
hmm if I remove the pip_url or set it to None. I'm not able to point to extractor's executable. @Edgar Ramírez (Arch.dev)
Copy code
/app # meltano install
Installing 1 plugins...
Installing extractor 'tap-gdrive'...
Skipped installing extractor 'tap-gdrive'...
Skipped installing 1/1 plugins
/app # meltano invoke tap-gdrive
2024-05-07T16:36:39.939210Z [info     ] Environment 'dev' is active   
Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to
join our friendly Slack community.

Executable 'tap-gdrive' could not be found. Extractor 'tap-gdrive' may not have been installed yet using `meltano install extractor tap-gdrive`, or the executable name may be incorrect.
config example:
Copy code
plugins:
  extractors:
  - name: tap-gdrive
    namespace: "tap-gdrive"
    pip_url: 
    executable: tap-gdrive
relevant filepath structure: /tap-gdrive/pyproject.toml... /tap-gdrive/tap_gdrive/client.py.. /meltano.yml
e
Then you actually need a valid
pip_url
pointing to the
/tap-gdrive/
directory
p
yes, but the issue is. if I point
pip_url: -e tap-gdrive
,
requirements.txt
needs to be inside
tap-gdrive
which is creating another virtualenv. I'm trying to find a way to use the parent environment for the tap.
e
Hmm, I'm not sure what's
requirements.txt
used for and what its contents are, but if you want to reuse a virtual environment, the
executable
needs to be an absolute path pointing to
tap-gdrive
in the venv's
/bin
directory
p
got it, it's the
.meltano/extractors/tap-gdrive/venv/bin
path right? btw sorry by requirements.txt I meant pyproject.toml.
e
It'd be
.meltano/extractors/tap-gdrive/venv/bin
if you installed the tap with
meltano install
, but I thought you wanted to reuse a different venv? I'm confused now 😅
p
sorry, yup yup my bad. sorry if it sounds naive, but if executable is pointed to project's /venv/bin. then which parameter points to the tap directory? is it the namespace and name? @Edgar Ramírez (Arch.dev)
I thought executable param is to be pointed to the tap folder, while pip_url to environment. so, pointing executable to any venv bin directly threw me off.
e
So here's how
exectutable
is resolved in various scenarios: 1.
pip_url
is not null: the
executable
value is appended to
.meltano/<plugin type>/<plugin name>/venv/bin/
2.
pip_url
is null and
executable
is not path-like (e.g. a simple value like
tap-gdrive
): the executable is expected to be on the PATH 3.
pip_url
is null and
executable
is path-like (e.g.
extractors/tap-gdrive/venv/bin/tap-gdrive
): the executable is appended to the project root path So yeah, I was a bit off about the last one. You shouldn't use an absolute path, rather a relative path to the project root.
👍 1