Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add install make target #437

Closed
wants to merge 1 commit into from
Closed

Add install make target #437

wants to merge 1 commit into from

Conversation

strk
Copy link
Contributor

@strk strk commented Dec 6, 2023

Closes #433

@strk
Copy link
Contributor Author

strk commented Dec 7, 2023

Interesting position from Debian-12:

pip install .
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

@ihabunek
Copy link
Owner

ihabunek commented Dec 7, 2023 via email

@strk
Copy link
Contributor Author

strk commented Dec 14, 2023

I've found pipx being recommended by some python developers (and even by https://peps.python.org/pep-0668/), which is like pip but deals with virtual envs.

It also allows using a system-wide virtualenv, using a pair of enviromnent variables:
pypa/pipx#754 (comment)

How would the maintainer feel about going in that direction and requiring pipx for install ?

The install target would then be something like:

PIPX_HOME=$(pipx_home) PIPX_BIN_DIR=$(bindir) pipx install .

What to make of pipx_home default I'm not sure, maybe $(sharedir)/pipx ?

@strk
Copy link
Contributor Author

strk commented Dec 14, 2023

I've pushed a commit using pipx

Uses pipx to install globally

Closes ihabunek#433
@ihabunek
Copy link
Owner

ihabunek commented Jan 4, 2024

Thanks for the pull, but I decided not to merge this one.

It makes assumptions like that the user wants to use pipx, that pipx home defaults to /opt/pipx, etc.

If you use toot from source, some python knowledge is required, and every user can choose what suits their needs.

For example, I never use pipx to install from source, i install using pip into a virtual env managed by virtualenvwrapper. But that's just my workflow.

@ihabunek ihabunek closed this Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Provide an "install" Makefile target
2 participants