Aparentemente, he hecho algo horrible en mi instalación de Python. Acabo de instalar Python 3.7.0 recientemente utilizando Homebrew. Cuando intento usar pip3
para instalar un paquete, falla:
$ /usr/local/Cellar/python/3.7.0/bin/pip3 install boto3
Collecting boto3
Using cached https://files.pythonhosted.org/packages/dd/80/515ffd88a5b9d35dc6fc29b64727a2ee4322690945e44b81bb8cdb47fecb/boto3-1.7.70-py2.py3-none-any.whl
Collecting s3transfer<0.2.0,>=0.1.10 (from boto3)
Using cached https://files.pythonhosted.org/packages/d7/14/2a0004d487464d120c9fb85313a75cd3d71a7506955be458eebfe19a6b1d/s3transfer-0.1.13-py2.py3-none-any.whl
Collecting jmespath<1.0.0,>=0.7.1 (from boto3)
Using cached https://files.pythonhosted.org/packages/b7/31/05c8d001f7f87f0f07289a5fc0fc3832e9a57f2dbd4d3b0fee70e0d51365/jmespath-0.9.3-py2.py3-none-any.whl
Collecting botocore<1.11.0,>=1.10.70 (from boto3)
Using cached https://files.pythonhosted.org/packages/c9/d2/2412e4cb63931bf1bcd0cde9618c92f51f7bfe68db8dc2120cfabc76a0a8/botocore-1.10.70-py2.py3-none-any.whl
Collecting docutils>=0.10 (from botocore<1.11.0,>=1.10.70->boto3)
Using cached https://files.pythonhosted.org/packages/36/fa/08e9e6e0e3cbd1d362c3bbee8d01d0aedb2155c4ac112b19ef3cae8eed8d/docutils-0.14-py3-none-any.whl
Collecting python-dateutil<3.0.0,>=2.1; python_version >= "2.7" (from botocore<1.11.0,>=1.10.70->boto3)
Using cached https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1; python_version >= "2.7"->botocore<1.11.0,>=1.10.70->boto3)
Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: docutils, six, python-dateutil, jmespath, botocore, s3transfer, boto3
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.7/site-packages/docutils/io.py'
Consider using the '--user' option or check the permissions.
Como puede ver en esto, está intentando instalar el paquete en el directorio del sistema para la versión apropiada, en este caso /Library/Python/3.7
. Esto no funciona, por dos razones: ya que no hay una versión del sistema 3.7, el directorio no existe, e incluso si lo hace, requiere permiso de root para escribir cualquier cosa debajo de /Library
.
Si intento usar pip3 install --user
, todavía intenta instalarse bajo /Library
.
La instalación con sudo
funciona ... para agregar el paquete a los paquetes de sitio en /Library
. Pero cuando trato de importar esos paquetes, se ve en la bodega y no los encuentra.
Bastante desconcertado por esto. He intentado eliminar y reinstalar Homebrew Python (incluida la eliminación de otras versiones que había instalado anteriormente).
Un problema similar para una versión anterior de Python se describe aquí , pero Las soluciones proporcionadas no solucionan este problema.
Supongo que me pregunto, ¿cómo PIP descubre dónde escribir los archivos del paquete y cómo lo reconfiguro para que haga lo correcto?