Re: [sage-devel] Allow for --user pip installs for sage?

2021-09-27 Thread Thierry
Hi,

for what it worth, i am +1 for letting the random user to pip-install
her own packages, either on ~/.local as William suggested, and/or in
~/.sage/local as it used to be the case (this location ensures that 
Python packages unrelated to some Sage activity will not add noise).

Ciao,
Thierry




On Mon, Sep 27, 2021 at 01:16:16PM -0700, William Stein wrote:
> On Mon, Sep 27, 2021 at 12:46 PM Nils Bruin  wrote:
> >
> >
> > Presently,
> >
> > $ sage -pip install --user .
> >
> > fails (at least for me, with a vanilla sage install on FC33) with
> >
> > ERROR: Can not perform a '--user' install. User site-packages are not 
> > visible in this virtualenv.
> >
> > Perhaps it's worth having this?
> >
> > Also, I noticed:
> >
> > $ sage --python3 -c "import sys; print(sys.path)" ['', 
> > '/usr/lib64/python39.zip', '/usr/lib64/python3.9', 
> > '/usr/lib64/python3.9/lib-dynload', 
> > '/usr/local/sage/sage-git/local/lib64/python3.9/site-packages', 
> > '/usr/local/sage/sage-git/local/lib/python3.9/site-packages']
> >
> > note that the first enstries in this list actually refer to the system 
> > python, not the sage python! I think that means that any patched package 
> > installs that sage uses will be shadowed by the system installations. 
> > That's probably not what is meant.
> 
> On CoCalc I think we explicitly patch the Sage we provide to include ~/.local:
> 
> ~$ sage --python3 -c "import sys; print(sys.path)"
> ['', '/ext/sage/sage-9.3/local/lib/python39.zip',
> '/ext/sage/sage-9.3/local/lib/python3.9',
> '/ext/sage/sage-9.3/local/lib/python3.9/lib-dynload',
> '/home/user/.local/lib/python3.9/site-packages',
> '/ext/sage/sage-9.3/local/lib/python3.9/site-packages',
> '/ext/sage/sage-9.3/local/lib/python3.9/site-packages/awalipy-0.4-py3.9-linux-x86_64.egg']
> 
> Also note that all the other path entries are our sage install (not
> the system python, which is crazy, as you point out).
> 
> For us, it's very very important that "pip install --user" just works.
> Also, for us, usually people are working in a very clean well defined
> environment (a cocalc project), which they are using for a  very
> specific "project" (e.g., teaching or taking a specific class, or
> writing a paper), so using ~/.local is very reasonable.I see at
> [1] that our page about installing packages "into sage is not
> supported", and it should be updated to say that "sage --pip install"
> does work.   We also make pip default to --user so actually "pip
> install" does just work.
> 
> I just found a "random" package on pypi:
> 
> ~$ sage --pip install pytype
> Defaulting to user installation because normal site-packages is not writeable
> Collecting pytype
> ...
> ~$ sage
> ┌┐
> │ SageMath version 9.3, Release Date: 2021-05-09 │
> │ Using Python 3.9.2. Type "help()" for help.│
> └┘
> sage: import pytype
> sage:  # yeah
> 
> IMHO, this is pretty good user experience.
> 
> Sometimes people do break their sage installs via installing stuff
> into ~/.local, but it's also easy to fix by just deleting ~/.local
> and starting over, and it's usually very clear this is the problem
> based on the traceback.
> 
>  -- William
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/CACLE5GD2n47_2QHpPNa82NqypuEqC6iV2Djg_0PTsy_%2BdqLwpA%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/20210927203342.GA4053%40metelu.net.


Re: [sage-devel] Allow for --user pip installs for sage?

2021-09-27 Thread William Stein
On Mon, Sep 27, 2021 at 12:46 PM Nils Bruin  wrote:
>
>
> Presently,
>
> $ sage -pip install --user .
>
> fails (at least for me, with a vanilla sage install on FC33) with
>
> ERROR: Can not perform a '--user' install. User site-packages are not visible 
> in this virtualenv.
>
> Perhaps it's worth having this?
>
> Also, I noticed:
>
> $ sage --python3 -c "import sys; print(sys.path)" ['', 
> '/usr/lib64/python39.zip', '/usr/lib64/python3.9', 
> '/usr/lib64/python3.9/lib-dynload', 
> '/usr/local/sage/sage-git/local/lib64/python3.9/site-packages', 
> '/usr/local/sage/sage-git/local/lib/python3.9/site-packages']
>
> note that the first enstries in this list actually refer to the system 
> python, not the sage python! I think that means that any patched package 
> installs that sage uses will be shadowed by the system installations. That's 
> probably not what is meant.

On CoCalc I think we explicitly patch the Sage we provide to include ~/.local:

~$ sage --python3 -c "import sys; print(sys.path)"
['', '/ext/sage/sage-9.3/local/lib/python39.zip',
'/ext/sage/sage-9.3/local/lib/python3.9',
'/ext/sage/sage-9.3/local/lib/python3.9/lib-dynload',
'/home/user/.local/lib/python3.9/site-packages',
'/ext/sage/sage-9.3/local/lib/python3.9/site-packages',
'/ext/sage/sage-9.3/local/lib/python3.9/site-packages/awalipy-0.4-py3.9-linux-x86_64.egg']

Also note that all the other path entries are our sage install (not
the system python, which is crazy, as you point out).

For us, it's very very important that "pip install --user" just works.
Also, for us, usually people are working in a very clean well defined
environment (a cocalc project), which they are using for a  very
specific "project" (e.g., teaching or taking a specific class, or
writing a paper), so using ~/.local is very reasonable.I see at
[1] that our page about installing packages "into sage is not
supported", and it should be updated to say that "sage --pip install"
does work.   We also make pip default to --user so actually "pip
install" does just work.

I just found a "random" package on pypi:

~$ sage --pip install pytype
Defaulting to user installation because normal site-packages is not writeable
Collecting pytype
...
~$ sage
┌┐
│ SageMath version 9.3, Release Date: 2021-05-09 │
│ Using Python 3.9.2. Type "help()" for help.│
└┘
sage: import pytype
sage:  # yeah

IMHO, this is pretty good user experience.

Sometimes people do break their sage installs via installing stuff
into ~/.local, but it's also easy to fix by just deleting ~/.local
and starting over, and it's usually very clear this is the problem
based on the traceback.

 -- William

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CACLE5GD2n47_2QHpPNa82NqypuEqC6iV2Djg_0PTsy_%2BdqLwpA%40mail.gmail.com.


[sage-devel] Allow for --user pip installs for sage?

2021-09-27 Thread Nils Bruin

Presently,

$ sage -pip install --user .

fails (at least for me, with a vanilla sage install on FC33) with

ERROR: Can not perform a '--user' install. User site-packages are not 
visible in this virtualenv.

Perhaps it's worth having this?

Also, I noticed:

$ sage --python3 -c "import sys; print(sys.path)" ['', 
'/usr/lib64/python39.zip', '/usr/lib64/python3.9', 
'/usr/lib64/python3.9/lib-dynload', 
'/usr/local/sage/sage-git/local/lib64/python3.9/site-packages', 
'/usr/local/sage/sage-git/local/lib/python3.9/site-packages'] 

note that the first enstries in this list actually refer to the system 
python, not the sage python! I think that means that any patched package 
installs that sage uses will be shadowed by the system installations. 
That's probably not what is meant.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/59cc60b7-b4ec-4644-a40b-852e4a617357n%40googlegroups.com.