Estaba jugando con brew install asciinema
y rompió mi instalación de Python en MacOS High Sierra (10.13.3 (17D47)).
Pero ahora que estoy reinstalando Python para el awscli a través de pip, no está actuando como yo esperaría.
La confusión:
Las instrucciones de instalación de awscli dicen "pip instala los ejecutables en la misma carpeta que contiene el ejecutable de Python. Añade esta carpeta a tu variable PATH". Cuando hago ls -al $(which python)
Me sale
lrwxr-xr-x 1 notbrain admin 35 Mar 6 10:35 /usr/local/bin/python -> ../Cellar/python/3.6.4_3/bin/python
Que es lo que yo esperaría después de una instalación de cerveza. Así que debería añadir /usr/local/Cellar/python/3.6.4_3/bin
a mi camino, ¿verdad?
Pero aws no se instala ahí, está en
~/Library/Python/3.6/bin
Añadiendo a la confusión - el shebang en la entrada de aws script se establece en:
17:11:40 notbrain@brian ~/Library/Python/3.6/bin
cat aws
#!/usr/local/opt/python/bin/python3.6
# Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Lo cual está bien, ya que es un enlace simbólico al Python 3.6 instalado por Brew. ¿Pero por qué tantas inconsistencias? ¿Dónde está pip recogiendo el ~/Library/Python
¿camino? Parece que eso es algo específico de MacOS.
¿Hay algo en mi sistema que esté mal configurado para causar esta discrepancia? ¿Es una cosa de configuración de instalación de pip que podría cambiar para trabajar con Python 3 instalado en casa?
Pasos de la instalación
He eliminado todo el Python instalado por brew y conseguir el sistema instalado 2.7:
10:20:20 notbrain@brian ~
python --version
Python 2.7.10
10:20:34 notbrain@brian ~
which python
/usr/bin/python
10:20:42 notbrain@brian ~
ll $(which python)
.rwxr-xr-x 66k root 1 Dec 2017 /usr/bin/python
10:21:13 notbrain@brian ~
whereis python
/usr/bin/python
Luego una reinstalación de Python con homebrew:
10:26:17 notbrain@brian ~
brew install python
==> Downloading https://homebrew.bintray.com/bottles/python-3.6.4_3.high_sierra.bottle.tar.gz
Already downloaded: /Users/notbrain/Library/Caches/Homebrew/python-3.6.4_3.high_sierra.bottle.tar.gz
==> Pouring python-3.6.4_3.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/python/3.6.4_3/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.6.4_3/bin --install-lib=/usr/local/lib/
==> /usr/local/Cellar/python/3.6.4_3/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.6.4_3/bin --install-lib=/usr/local/lib/
==> /usr/local/Cellar/python/3.6.4_3/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.6.4_3/bin --install-lib=/usr/local/lib/
==> Caveats
Pip, setuptools, and wheel have been installed. To update them
pip3 install --upgrade pip setuptools wheel
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.6/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
Unversioned symlinks python, python-config, pip etc. pointing to python3,
python3-config, pip3 etc., respectively, have been installed.
If you need Homebrew's Python 2, `brew install python@2`.
==> Summary
/usr/local/Cellar/python/3.6.4_3: 3,615 files, 56.
10:26:44 notbrain@brian ~
which python
/usr/local/bin/python
Y finalmente, una instalación pip de awscli usando https://docs.aws.amazon.com/cli/latest/userguide/cli-install-MacOS.html#awscli-install-osx-pip
10:35:49 notbrain@brian ~
pip install awscli --upgrade --user
Collecting awscli
Using cached awscli-1.14.50-py2.py3-none-any.whl
Collecting docutils>=0.10 (from awscli)
Using cached docutils-0.14-py3-none-any.whl
Collecting colorama<=0.3.7,>=0.2.5 (from awscli)
Using cached colorama-0.3.7-py2.py3-none-any.whl
Collecting s3transfer<0.2.0,>=0.1.12 (from awscli)
Using cached s3transfer-0.1.13-py2.py3-none-any.whl
Collecting botocore==1.9.3 (from awscli)
Using cached botocore-1.9.3-py2.py3-none-any.whl
Collecting rsa<=3.5.0,>=3.1.2 (from awscli)
Using cached rsa-3.4.2-py2.py3-none-any.whl
Collecting PyYAML<=3.12,>=3.10 (from awscli)
Collecting python-dateutil<3.0.0,>=2.1 (from botocore==1.9.3->awscli)
Using cached python_dateutil-2.6.1-py2.py3-none-any.whl
Collecting jmespath<1.0.0,>=0.7.1 (from botocore==1.9.3->awscli)
Using cached jmespath-0.9.3-py2.py3-none-any.whl
Collecting pyasn1>=0.1.3 (from rsa<=3.5.0,>=3.1.2->awscli)
Using cached pyasn1-0.4.2-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1->botocore==1.9.3->awscli)
Using cached six-1.11.0-py2.py3-none-any.whl
Installing collected packages: docutils, colorama, six, python-dateutil, jmespath, botocore, s3transfer, pyasn1, rsa, PyYAML, awscli
Successfully installed PyYAML-3.12 awscli-1.14.50 botocore-1.9.3 colorama-0.3.7 docutils-0.14 jmespath-0.9.3 pyasn1-0.4.2 python-dateutil-2.6.1 rsa-3.4.2 s3transfer-0.1.13 six-1.11.0