Zulip Chat Archive
Stream: general
Topic: pip install mathlibtools
Patrick Massot (Dec 28 2019 at 18:13):
I just created a python package for our mathlib supporting tools at https://pypi.org/project/mathlibtools/0.0.1/. We now need as many people as possible to try it in various settings. In order to help the community in this new adventure, you only need to:
- make sure your installation of
update-mathlib
(if any) gets out of the way. It probably means moving$HOME/.mathlib/bin/
somewhere your shell won't look at. - Make sure you have some version of python (at least python 3.5) with a working
pip
command, preferably in a weird setup (windows, multiple versions of python installed in conflicting ways...) - try
pip install mathlibtools
(orpip3 install ...
orsudo pip install ...
orpip install --user
or whatever variation you can think of). - go to the root folder of a lean project using
lean-3.4.2
andmathlib
and typeupdate-mathlib
(see this doc if you don't know how to make one) - if you know what they are meant to do, you can also try
cache-olean
andsetup-lean-git-hooks
- Report here.
Kevin Buzzard (Dec 28 2019 at 18:14):
I am an ideal candidate for this because I'm using Ubuntu which has python2 by default. But doesn't this mean that it just won't work? Do I need to go into some python3 environment first?
Patrick Massot (Dec 28 2019 at 18:15):
You probably need to use sudo pip3 install mathlib-tools
.
Patrick Massot (Dec 28 2019 at 18:15):
or pip3 install --user mathlibtools
Kevin Buzzard (Dec 28 2019 at 18:15):
without any workon
stuff?
Patrick Massot (Dec 28 2019 at 18:16):
You can also try in a virtualenv (ie. after workon
) but this would be a different test case.
Kevin Buzzard (Dec 28 2019 at 18:17):
ooh I've never been in ~/.mathlib
before. I seem to have 39 files called things like mathlib-olean-nightly-2019-05-23.tar.gz
Kevin Buzzard (Dec 28 2019 at 18:17):
oh man I also have my hooks
for when I work on mathlib. Should I move them too?
Patrick Massot (Dec 28 2019 at 18:18):
If you intend to test setup-lean-git-hooks
then you should also move that folder away, just to make sure.
Kevin Buzzard (Dec 28 2019 at 18:18):
Ok I'll just move all of .mathlib
out of the way
Patrick Massot (Dec 28 2019 at 18:19):
Your 39 files are all the compiled versions of mathlib that update-mathlib ever downloaded for you. We could have a contest to see who is the greatest update-mathlib user.
Patrick Massot (Dec 28 2019 at 18:19):
I have 55 of them!
Patrick Massot (Dec 28 2019 at 18:19):
Who has more?
Kevin Buzzard (Dec 28 2019 at 18:19):
I typed pip3 install --user mathlibtools
and now I have no command update-mathlib
Kevin Buzzard (Dec 28 2019 at 18:21):
I have update-motd
-- will that do?
Patrick Massot (Dec 28 2019 at 18:21):
no
Kevin Buzzard (Dec 28 2019 at 18:21):
I have no ~/.mathlib
Patrick Massot (Dec 28 2019 at 18:21):
Could you try to sudo pip3 install mathlibtools
version?
Kevin Buzzard (Dec 28 2019 at 18:22):
Before I do that, can you clarify if my PATH
is supposed to have changed, or if I am now supposed to have a ~/.mathlib
?
Patrick Massot (Dec 28 2019 at 18:22):
None of those.
Kevin Buzzard (Dec 28 2019 at 18:22):
Could you try to
sudo pip3 install mathlibtools
version?
Is this some trick to hack me?
Kevin Buzzard (Dec 28 2019 at 18:23):
$ sudo pip3 install mathlibtools [sudo] password for buzzard: The directory '/home/buzzard/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/buzzard/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Requirement already satisfied: mathlibtools in ./.local/lib/python3.6/site-packages Requirement already satisfied: toml in ./.local/lib/python3.6/site-packages (from mathlibtools) Requirement already satisfied: certifi in ./.local/lib/python3.6/site-packages (from mathlibtools) Requirement already satisfied: gitpython in ./.local/lib/python3.6/site-packages (from mathlibtools) Requirement already satisfied: requests in ./.local/lib/python3.6/site-packages (from mathlibtools) Requirement already satisfied: PyGithub in ./.local/lib/python3.6/site-packages (from mathlibtools) Requirement already satisfied: gitdb2>=2.0.0 in ./.local/lib/python3.6/site-packages (from gitpython->mathlibtools) Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in ./.local/lib/python3.6/site-packages (from requests->mathlibtools) Requirement already satisfied: idna<2.9,>=2.5 in ./.local/lib/python3.6/site-packages (from requests->mathlibtools) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in ./.local/lib/python3.6/site-packages (from requests->mathlibtools) Requirement already satisfied: deprecated in ./.local/lib/python3.6/site-packages (from PyGithub->mathlibtools) Requirement already satisfied: pyjwt in ./.local/lib/python3.6/site-packages (from PyGithub->mathlibtools) Requirement already satisfied: six in ./.local/lib/python3.6/site-packages (from PyGithub->mathlibtools) Requirement already satisfied: smmap2>=2.0.0 in ./.local/lib/python3.6/site-packages (from gitdb2>=2.0.0->gitpython->mathlibtools) Requirement already satisfied: wrapt<2,>=1.10 in ./.local/lib/python3.6/site-packages (from deprecated->PyGithub->mathlibtools) buzzard@bob:~$
Etienne Laurin (Dec 28 2019 at 18:23):
If you use pip3
with --user
, the package gets installed in a different folder that might not be in your path. You can run python3 -c 'import site; print(site.USER_SITE)'
to see where.
Kevin Buzzard (Dec 28 2019 at 18:23):
My python3 is Python 3.6.9, I notice
Etienne Laurin (Dec 28 2019 at 18:24):
once installed mathlibtools
seems to work well for me
Patrick Massot (Dec 28 2019 at 18:24):
Hey, Kevin's pip still tried a user space install.
Etienne Laurin (Dec 28 2019 at 18:24):
$ virtualenv -p python3.7 .py $ .py/bin/pip install mathlibtools Successfully installed mathlibtools-0.0.1 $ .py/bin/update-mathlib Querying GitHub... Reusing cached olean archive ... successfully extracted olean archive.
Kevin Buzzard (Dec 28 2019 at 18:26):
This will all be Ubuntu's default set-up for python3.
$ dpkg -S /usr/bin/python3 python3-minimal: /usr/bin/python3 buzzard@bob:~$
because I have no idea how python2/3/whatever works, all I ever do is use the Ubuntu package manager to install python packages
Patrick Massot (Dec 28 2019 at 18:27):
Kevin, do you see anything in $HOME/.local/bin/
?
Kevin Buzzard (Dec 28 2019 at 18:28):
OK so if I do workon format_lean
(Patrick this is the set-up you explain in the format_lean docs) and then pip install mathlibtools
then it seems to work
Kevin Buzzard (Dec 28 2019 at 18:28):
My python is now 3.7.1
Patrick Massot (Dec 28 2019 at 18:28):
Ok, this is good but not good enough. It should also work outside of a virtual env.
Patrick Massot (Dec 28 2019 at 18:29):
Do you see anything in $HOME/.local/bin/
?
Kevin Buzzard (Dec 28 2019 at 18:29):
[I'm just actually testing update-mathlib, hang on]
Kevin Buzzard (Dec 28 2019 at 18:30):
(format_lean) buzzard@bob:~/lean-projects/test$ update-mathlib Info: No github section found in 'git config', we will use GitHub with no authentication Querying GitHub... Error: no nightly archive found no cache found
Patrick Massot (Dec 28 2019 at 18:30):
What is in you leanpkg.toml?
Kevin Buzzard (Dec 28 2019 at 18:30):
eew that's my fault
Kevin Buzzard (Dec 28 2019 at 18:30):
April 2018!
Patrick Massot (Dec 28 2019 at 18:31):
I would be easier to test that in a project where update-mathlib used to work.
Kevin Buzzard (Dec 28 2019 at 18:31):
$ more leanpkg.toml [package] name = "test" version = "0.1" lean_version = "nightly-2018-04-06" path = "src" [dependencies] lean-lib = {git = "https://github.com/unitb/lean-lib", rev = "1ccbd0da9d71eac905559f8ca6768098f5ed617e"} mathlib = {git = "https://github.com/leanprover-community/mathlib", rev = "5df2ee70cfd576e6fa11359496a8a06c029151c9"} (format_lean) buzzard@bob:~/lean-projects/test$
How did that happen??
Kevin Buzzard (Dec 28 2019 at 18:31):
oh I'm an idiot, all my fault. My "new" test repo already existed
Patrick Massot (Dec 28 2019 at 18:32):
lean-version
has to be lean-3.4.2
.
Kevin Buzzard (Dec 28 2019 at 18:32):
Yes! I think that test dir was there from years ago. It all works fine.
Kevin Buzzard (Dec 28 2019 at 18:33):
OK I'm now back out of the format_lean venv
Patrick Massot (Dec 28 2019 at 18:33):
and inspecting $HOME/.local/bin
Kevin Buzzard (Dec 28 2019 at 18:33):
buzzard@bob:~/.local/bin$ ls -l total 292 -rwxr-xr-x 1 buzzard buzzard 3694 Dec 28 18:19 cache-olean -rwxr-xr-x 1 buzzard buzzard 225 Dec 28 18:19 chardetect -rwxr-xr-x 1 buzzard buzzard 234 Nov 16 21:40 easy_install -rwxr-xr-x 1 buzzard buzzard 234 Nov 16 21:40 easy_install-3.6 -rwxr-xr-x 1 buzzard buzzard 212 Feb 9 2019 flask -rwxr-xr-x 1 buzzard buzzard 235 Feb 9 2019 iptest -rwxr-xr-x 1 buzzard buzzard 235 Feb 9 2019 iptest3 -rwxr-xr-x 1 buzzard buzzard 228 Feb 9 2019 ipython -rwxr-xr-x 1 buzzard buzzard 228 Feb 9 2019 ipython3 -rwxr-xr-x 1 buzzard buzzard 236 Feb 9 2019 pbr -rwxrwxr-x 1 buzzard buzzard 214 Apr 14 2018 pip -rwxrwxr-x 1 buzzard buzzard 214 Apr 14 2018 pip2 -rwxrwxr-x 1 buzzard buzzard 214 Apr 14 2018 pip2.7 -rwxr-xr-x 1 buzzard buzzard 219 Feb 9 2019 pygmentize -rwxr-xr-x 1 buzzard buzzard 215 Dec 28 18:19 pyjwt -rwxr-xr-x 1 buzzard buzzard 685 Dec 28 18:19 setup-lean-git-hooks -rwxr-xr-x 1 buzzard buzzard 1341 Dec 28 18:19 update-mathlib -rwxr-xr-x 1 buzzard buzzard 234 Feb 9 2019 virtualenv -rwxr-xr-x 1 buzzard buzzard 239 Feb 9 2019 virtualenv-clone -rwxr-xr-x 1 buzzard buzzard 2210 Feb 9 2019 virtualenvwrapper_lazy.sh -rwxr-xr-x 1 buzzard buzzard 41697 Feb 9 2019 virtualenvwrapper.sh buzzard@bob:~/.local/bin$
Patrick Massot (Dec 28 2019 at 18:34):
Ok, so the issue is that .local/bin
in not in your path, but this is where pip3 install --user
puts its executable files.
Kevin Buzzard (Dec 28 2019 at 18:34):
It's not in my PATH
though
Kevin Buzzard (Dec 28 2019 at 18:35):
Ubuntu says
buzzard@bob:~$ echo $PATH /home/buzzard/.pyenv/bin:/home/buzzard/.mathlib/bin:/home/buzzard/.mathlib/bin:/home/buzzard/.elan/bin:/home/buzzard/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/java/jdk1.8.0_77/bin:/usr/local/java/jdk1.8.0_77/jre/bin:/home/buzzard/Encfs/bin:/home/buzzard/Dropbox/bin
(I put the last two or three there myself)
Patrick Massot (Dec 28 2019 at 18:39):
The fact that the sudo version doesn't work is probably pyenv
messing up things.
Patrick Massot (Dec 28 2019 at 18:39):
The --user
issue seems to be a known but unfixed issue: https://github.com/pypa/pip/issues/3813
Patrick Massot (Dec 28 2019 at 18:42):
can you try a bare pip install mathlibtools
?
Patrick Massot (Dec 28 2019 at 18:42):
and then which update-mathlib
Kevin Buzzard (Dec 28 2019 at 18:51):
$ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
This doesn't bode well, right?
Etienne Laurin (Dec 28 2019 at 18:51):
@Patrick Massot This new update-mathlib
seems to overwrite ./src
instead of _target/deps/mathlib/src
Etienne Laurin (Dec 28 2019 at 18:54):
@Kevin Buzzard What does the which pip
command say?
Kevin Buzzard (Dec 28 2019 at 18:55):
I think I once did something which nobody should do with pip
. I once googled this. This will be a python2 pip and I never use python2.
Kevin Buzzard (Dec 28 2019 at 18:56):
pip3 install mathlibtools
works fine (but doesn't put update-mathlib anywhere where my path spots it)
Etienne Laurin (Dec 28 2019 at 18:57):
What does the which pip3
command report? It looks like you may be using a non-system pip3 from /home/buzzard/.pyenv/bin
Patrick Massot (Dec 28 2019 at 19:15):
Oops, this src
issue is a bug I introduced while refactoring a bit. I shouldn't have done that at the same time.
Patrick Massot (Dec 28 2019 at 19:25):
@Etienne Laurin I pushed a fix to pypi, thanks!
Patrick Massot (Dec 28 2019 at 19:33):
Étienne, can you confirm that installation worked for you without fiddling with PATH?
Etienne Laurin (Dec 28 2019 at 19:49):
Yes, but I used a virtualenv and invoke update-mathlib using a relative path.
Patrick Massot (Dec 28 2019 at 20:15):
What if you try a system install?
Etienne Laurin (Dec 28 2019 at 21:42):
sudo pip3 install mathlibtools
installs to my path but pip3 install mathlib
doesn't.
Patrick Massot (Dec 28 2019 at 21:49):
And can you see where pip3 install
puts it? Is it in $HOME/.local/bin
?
Etienne Laurin (Dec 28 2019 at 21:51):
Yep, that's where.
Patrick Massot (Dec 28 2019 at 21:53):
Do you think this is still an improvement over the current situation? We currently need to tweak the path, but had control to where the script ended up. Now we loose control but it should end up in a more standard place.
Etienne Laurin (Dec 28 2019 at 22:02):
I like that it's more universal, I don't have Ubuntu or Windows, the pip package makes it easier to use for me.
Patrick Massot (Dec 28 2019 at 22:07):
Good. Thank you very much for testing this. I wish more people could try...
Last updated: Dec 20 2023 at 11:08 UTC