python - instalar - pip install mac
instalación de pip/usr/local/opt/python/bin/python2.7: mal intérprete: No existe tal archivo o directorio (16)
No sé cuál es el trato, pero estoy atrapado siguiendo algunas soluciones de stackoverflow que no llegan a ninguna parte. ¿Puedes por favor ayudarme en esto?
Monas-MacBook-Pro:CS764 mona$ sudo python get-pip.py
The directory ''/Users/mona/Library/Caches/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 ''/Users/mona/Library/Caches/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.
/tmp/tmpbSjX8k/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Collecting pip
Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
100% |████████████████████████████████| 1.1MB 181kB/s
Installing collected packages: pip
Found existing installation: pip 1.4.1
Uninstalling pip-1.4.1:
Successfully uninstalled pip-1.4.1
Successfully installed pip-7.1.0
Monas-MacBook-Pro:CS764 mona$ pip --version
-bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
Pipa de fijación
Por este error:
~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`
La fuente de este problema es una mala ruta de Python codificada en pip (lo que significa que no se solucionará, por ejemplo, cambiando su $ PATH). Ese camino ya no está codificado en la última versión de pip, por lo que una solución que debería funcionar es:
pip install --upgrade pip
Pero, por supuesto, este comando usa pip, por lo que falla con el mismo error.
La forma de arrancarte de este lío:
-
Ejecuta
which pip
- Abre ese archivo en un editor de texto
-
Cambie la primera línea de
#!/usr/local/opt/python/bin/python2.7
a, por ejemplo,#!/usr/local/opt/python2/bin/python2.7
(tenga en cuenta el python2 en la ruta), o cualquier ruta a un intérprete de Python en funcionamiento en su máquina. -
Ahora,
pip install --upgrade pip
(esto sobrescribe su pirateo y hace que pip funcione en la última versión, donde se debe solucionar el problema del intérprete)
Fijación de virtualenv
Para mí, encontré este problema al tener primero el mismo problema de virtualenv:
~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`
La solución aquí es correr
pip uninstall virtualenv
pip install virtualenv
Si ejecutar ese comando da el mismo error desde pip, ver arriba.
Única solución en OSX y su variante.
ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
Cometí el mismo error al usar sudo para mi instalación. (Uy)
brew install python
brew linkapps python
brew link --overwrite python
Esto trajo todo de vuelta a la normalidad.
Como tenía instalado Python 2 y 3 en Mac OSX, estaba teniendo todo tipo de errores.
Solía encontrar la ubicación de mi archivo python2.7 (/usr/local/bin/python2.7)
hash -r
Luego vinculé mi ubicación de instalación real de python2.7 con la que esperaba el script:
which python2.7
En caso de que ayude a alguien, la solución mencionada en esta otra pregunta funcionó para mí cuando pip dejó de funcionar hoy después de actualizarlo: Pip roto después de actualizar
Parece que es un problema cuando cambia una ubicación previamente almacenada en caché, por lo que puede actualizar la caché con este comando:
ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7
En mi caso, decidí eliminar la instalación de Python homebrew de mi Mac ya que ya tenía otras dos versiones de Python instaladas en mi Mac a través de MacPorts. Esto causó el mensaje de error.
Reinstalar Python a través de brew resolvió mi problema.
Había usado home-brew para instalar 2.7 en OS X 10.10 y la nueva instalación no tenía los enlaces sym. corrí
brew link --overwrite python
como se menciona en Cómo vincular python en Homebrew? Y resolvió el problema.
La edición de la primera línea de este archivo me funcionó:
MBP-de-Jose:~ josejunior$ which python3
/usr/local/Cellar/python/3.7.3/bin/python3
MBP-de-Jose:~ josejunior$
antes de
#!/usr/local/opt/python/bin/python3.7
después
#!/usr/local/Cellar/python/3.7.3/bin/python3
Para simplificar la operación, podemos usar el siguiente comando para reinstalar la versión 2:
brew install python@2
Luego, en mi mac, se ve a continuación:
▶ python -V
Python 2.7.10
▶ python2 -V
Python 2.7.14
▶ python3 -V
Python 3.6.5
▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)
▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
Supongo que tiene dos instalaciones de python, o dos instalaciones de pip, una de las cuales se ha eliminado parcialmente.
¿Por qué usas
sudo
?
Idealmente, debería poder instalar y ejecutar todo desde su cuenta de usuario en lugar de usar root.
Si combina la raíz y su cuenta local, es más probable que tenga problemas de permisos (por ejemplo, vea la advertencia que da sobre "el directorio principal no es propiedad del usuario actual").
¿Qué obtienes si ejecutas esto?
$ head -n1 /usr/local/bin/pip
Esto le mostrará qué
pip
binario de Python está tratando de usar.
Si apunta a
/usr/local/opt/python/bin/python2.7
, intente ejecutar esto:
$ ls -al /usr/local/opt/python/bin/python2.7
Si esto dice "No existe tal archivo o directorio", entonces pip está tratando de usar un binario de Python que se ha eliminado.
A continuación, intente esto:
$ which python
$ which python2.7
Para ver la ruta del binario de Python que realmente está funcionando.
Dado que parece que pip se instaló con éxito en algún lugar, podría ser que
/usr/local/bin/pip
sea parte de una instalación anterior de pip que está más arriba en la
PATH
.
Para probar eso, puede intentar mover el binario
pip
no funciona de la siguiente manera (podría requerir
sudo
):
$ mv /usr/local/bin/pip /usr/local/bin/pip.old
Luego intente ejecutar su comando
pip --version
nuevamente.
Con suerte, recoge la versión correcta y se ejecuta con éxito.
Tengo el mismo problema
Si ejecuto
brew link --overwrite python2
.
Todavía había
zsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory
.
cd /usr/local/opt/
mv python2 python
¡Resuelto! Ahora podemos usar la versión de python2 fabric.
=== 2018/07/25 actualizado
Hay una manera conveniente de usar la versión fab de python2 cuando su os python está vinculado a python3.
.sh
para su comando.
# fab python2
cd /usr/local/opt
rm python
ln -s python2 python
# use the fab cli
...
# link to python3
cd /usr/local/opt
rm python
ln -s python3 python
Espero que esto ayude.
Todo lo que necesita hacer es ... cerrar la ventana de terminal y volver a abrir una nueva para solucionar este problema.
El problema es que la nueva ruta de Python no se agrega a bashrc (la fuente o la nueva ventana de terminal ayudarían).
Tuve el mismo problema, virtualenv estaba apuntando a una vieja ruta de Python. Arreglar la ruta resolvió el problema:
$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
$ which python2.7
/opt/local/bin/python2.7
# needed to change to correct python path
$ head /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH
# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.
Tuve el mismo problema.
Tengo instalados Python 2.7 y 3.6.
Python 2.7 tenía
virtualenv
funcionando, pero después de instalar Python3, virtualenv siguió buscando la versión 2.7 y no pudo encontrarla.
Haciendo
pip install virtualenv
instaló la versión Python3 de virtualenv.
Luego, para cada comando, si quiero usar Python2, usaría
virtualenv --python=python2.7 somecommand
Tuve un problema similar. Básicamente, pip buscaba una ruta incorrecta (ruta de instalación anterior) o python. La siguiente solución funcionó para mí:
-
Verifiqué dónde está la ruta de Python (prueba
which python
) -
Verifiqué la primera línea en el archivo pip (
/usr/local/bin/pip2.7
y/usr/local/bin/pip
). La línea debe indicar la ruta correcta a la ruta de Python. En mi caso, no lo hice. Lo corregí y ahora funciona bien.
sudo /usr/bin/easy_install pip
este comando me funcionó