Textualize / trogon

Easily turn your Click CLI into a powerful terminal application
MIT License
2.5k stars 54 forks source link

execvp fix #84

Open antonio-antuan opened 5 months ago

antonio-antuan commented 5 months ago

solves #70

DanielMaysWilliams commented 3 months ago

I've been experiencing issue #70 while running Trogon with my python installation managed by pyenv, and this change fixes it.

In the meantime for anyone else experiencing this issue, manually activating my venv with source ~/.pyenv/path/to/env/bin/activate allows me to run my Trogon app.

antonio-antuan commented 2 months ago

I'm not familiar with pipx. But however are there only two options of "sys.executable": python itself (and its variants) and "mycli-package"?

daneah commented 2 months ago

pipx isn't necessarily the important bit, as there are a few other common ways by which packages can expose executables. But the crux of this use case is that the CLI app is run by being another executable on the path (via options.entry_points.console_scripts). That executable file, generated by pip machinery, is something like this:

#!/path/to/some/python
# -*- coding: utf-8 -*-
import re
import sys
from mycli.main import main
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())