python - para - Pip Install no está instalando en el directorio correcto?
instalar pip python windows (8)
Parece que no puedo usar sudo pip install correctamente para que se instale en el siguiente directorio:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
para que luego pueda importar el módulo usando Python
Corrí
sudo pip install scikit-learn --upgrade
Resultado
Requirement already up-to-date: scikit-learn in /usr/local/lib/python2.7/site-packages
Cleaning up...
Sin embargo, no está en el directorio correcto
¿Cómo obtengo sudo pip install para instalarlo en el directorio correcto?
Además, lo he intentado
sudo pip instalar Scrappy
Recibo el siguiente mensaje
new-host-2:site-packages Chris$ sudo pip install Scrapy
Password:
Requirement already satisfied (use --upgrade to upgrade): Scrapy in /usr/local/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.8.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.2.1 in /usr/local/lib/python2.7/site-packages (from pyOpenSSL->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages (from zope.interface>=3.6.0->Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cffi>=0.8 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.2.1->pyOpenSSL->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python2.7/site-packages (from cffi>=0.8->cryptography>=0.2.1->pyOpenSSL->Scrapy)
Ambas instancias demuestran que ha sido instalado pero no correctamente. Por ejemplo, cuando ejecuto la siguiente importación en python:
import scrapy
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-6-51c73a18167b> in <module>()
----> 1 import scrapy
ImportError: No module named scrapy
He intentado lo siguiente:
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
1 - Algo que podría funcionar
El ejecutable pip
es en realidad una secuencia de comandos de Python.
Por defecto contiene (en Linux):
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: ''pip==1.5.6'',''console_scripts'',''pip''
__requires__ = ''pip==1.5.6''
import sys
from pkg_resources import load_entry_point
if __name__ == ''__main__'':
sys.exit(
load_entry_point(''pip==1.5.6'', ''console_scripts'', ''pip'')()
)
Entonces, si obtuvieras lo mismo en MacOS, pip
siempre usaría /usr/bin/python
.
Pero esto es un defecto. Todavía puede proporcionar la versión de python que desee editando el archivo o utilizando python explícitamente.
Si which python
devuelve /usr/bin/python
, algo salió mal cuando instaló su propia versión. Si es /Library/Frameworks/Python.framework/Versions/2.7/bin/python
, puede llamar directamente:
sudo python `which pip` install scikit-learn --upgrade
Sin embargo, hay muchas posibilidades de que no funcione. La razón es que sudo
está restableciendo todas las variables de su entorno. Para que funcione, lo más fácil sería usar:
sudo -E pip install scikit-learn --upgrade
o
sudo -E python `which pip` install scikit-learn --upgrade
dependiendo de tu configuración
2 - Lo que debes hacer
pip
no fue pensado como algo que la root
debe ejecutar. La mejor manera real de usarlo es instalar una versión local, no raíz, de Python. Solo tiene que asegurarse de usarlo de manera predeterminada configurando las variables de entorno correctas (como PATH
en Linux) y luego instale pip
sin sudo
usando esa versión de python.
Una forma aún mejor sería configurar virtualenv
s desde su instalación raíz.
De esta forma, puedes instalar / actualizar lo que quieras sin privilegios de root y nunca más molestarte sobre por qué sudo pip
no funciona. También evitaría proporcionar privilegios de raíz a lo que está en Pypi y eso garantizaría que no mezcle las librerías del sistema con las suyas.
Estoy totalmente de acuerdo con los muchachos, es mejor usar virtualenv para que pueda establecer un entorno personalizado para cada proyecto. Es ideal para el mantenimiento porque es como un mundo diferente para cada proyecto y cada actualización de una aplicación que realice no interferirá con otros proyectos.
Aquí puede encontrar una síntesis de virtualenv relacionada con la instalación y los primeros pasos.
De los comentarios a la pregunta original, parece que tienes múltiples versiones de Python instaladas, y esa pepita simplemente va a la versión incorrecta.
En primer lugar, para saber qué versión de Python estás usando, simplemente escribe which python
. Usted debe ver:
which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
si vas a la versión correcta de python, o:
which python
/usr/bin/python
Si vas a la versión "incorrecta". Para hacer que pip vaya a la versión correcta, primero debe cambiar la ruta:
export PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin/python:${PATH}
teclear ''which python'' te llevaría al resultado correcto. A continuación, instale pip (si aún no está instalado para esta instalación de python). Finalmente, úsalo. deberías estar bien ahora.
Asegúrate de que la versión de pepita coincide con tu versión de Python.
para usar tu versión de Python:
python -V
luego instala la pipa correcta. Es posible que ya tenga intall en ese caso intente usar:
instalación de pip-2.5 ...
instalación de pip-2.7 ...
o para aquellos de ustedes que usan macports, asegúrese de que su versión coincida con.
puerto seleccionar --list pip
luego cambie a la misma versión de Python que está usando.
Selección del puerto sudo --set pip pip27
Espero que esto ayude. Funciona en mi extremo.
Esto es lo que funcionó para mí en Windows. La causa de las múltiples instalaciones de Python
- actualizar ruta con python correcto
- desinstalar pip usando
python -m pip uninstall pip setuptools
- reiniciar Windows no funcionó hasta que se reinició
- descargar pip en https://pypi.python.org/pypi/pip (tar)
- descomprimir archivo tar
- cd al directorio del archivo
- sudo python2.7 setup.py instalar
Debe desinstalar el python existente y luego descargar la nueva versión.
Virtualenv es tu amigo
Incluso si desea agregar un paquete a su instalación principal, lo mejor es hacerlo primero en un entorno virtual, para garantizar la compatibilidad con sus otros paquetes. Sin embargo, si te familiarizas con virtualenv, probablemente encontrarás que realmente no hay razón para instalar nada en tu instalación base.