Foros del Web » Administración de Sistemas » Unix / Linux »

Ubuntu enlace simbolico a pip-python

Estas en el tema de Ubuntu enlace simbolico a pip-python en el foro de Unix / Linux en Foros del Web. Buenas tardes salu2. Tengo un pequeño problema. Soy nuevo en linux, y estoy tratando de aprender a programar en Python. La cosa es que leí ...
  #1 (permalink)  
Antiguo 13/03/2013, 15:51
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas
Mensajes: 24
Antigüedad: 7 años, 2 meses
Puntos: 1
Ubuntu enlace simbolico a pip-python

Buenas tardes salu2.

Tengo un pequeño problema.

Soy nuevo en linux, y estoy tratando de aprender a programar en Python.

La cosa es que leí sobre Python que necesitaba PIP para instalar paquetes o algo así, e easy_install y distribute entonces tratando de instalar pip y distribute (que estaban en la direccion: usr/lib/python2.7/dist-package/) se han movido por obra y gracias del espíritu santo a: usr/local/lib/python2.7/site-package y al intentar usar comandos como "pip install Django" me dice: bash: /usr/bin/pip: No existe el archivo o el directorio.

Me imagino que porque se movió y ya no se encuentra en el PATH. Como hago para indicarle al sistema la nueva ruta???? o como hago para crear un enlace simbólico??? que es lo que mas o menos e leído y al parecer puede ser la solución a mi problema.

Muchas gracias por su tiempo.
  #2 (permalink)  
Antiguo 13/03/2013, 17:59
 
Fecha de Ingreso: julio-2009
Ubicación: La Plata
Mensajes: 233
Antigüedad: 10 años, 6 meses
Puntos: 8
Respuesta: Ubuntu enlace simbolico a pip-python

Quizá te sirva algo como:
Código:
export PATH=$PATH":Rurta/del/nuevo/path"
Los enlaces simbólicos...Google te puede ayudar, buscando algo así como un famoso ln -s.

Podrías también especificar la ruta de pip para ejecutarlo, supongo.
Código:
/ruta/de/pip install Django
  #3 (permalink)  
Antiguo 14/03/2013, 10:56
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas
Mensajes: 24
Antigüedad: 7 años, 2 meses
Puntos: 1
Respuesta: Ubuntu enlace simbolico a pip-python

Cita:
Iniciado por pistonasos Ver Mensaje
Quizá te sirva algo como:
Código:
export PATH=$PATH":Rurta/del/nuevo/path"
Los enlaces simbólicos...Google te puede ayudar, buscando algo así como un famoso ln -s.

Podrías también especificar la ruta de pip para ejecutarlo, supongo.
Código:
/ruta/de/pip install Django
Que tal @Pistonasos como te va? gracias por la respuesta.

Si eso lo estuve leyendo en google, como hacer los enlaces simbólicos y logre hacerlo a la carpeta /usr/bin que es como donde busca el sistema cuando ejecutas un código en la consola (ojo soy nuevo en linux no se realmente si es así pero fue mas o menos lo que entendí) y cuando hice el enlace la consola me decía que pip era un directorio, entonces no ejecutaba nada.

No se como o a que debería de hacerle el enlace, no se si me explico.

Lo que si vi en esa carpeta /bin es que había un icono que se llamaba pip y cuando el daba doble click me decía que el enlace estaba roto y quise abrirlo para ver el codigo a ver si entendía algo pero a la final no pude.
  #4 (permalink)  
Antiguo 14/03/2013, 21:10
 
Fecha de Ingreso: julio-2009
Ubicación: La Plata
Mensajes: 233
Antigüedad: 10 años, 6 meses
Puntos: 8
Respuesta: Ubuntu enlace simbolico a pip-python

Hola @edgarherrera.

Si, está bien lo que entendiste. Cuando uno está en consola, hay siertas variables que intervienen en el comportamiento de la misma como otras que son informativas.
Si no me equivoco,a ese conjunto de variables se les llama entorno o environment en inglés.
Para definir una variable, se hace con
Código:
export nombre_variable=valor
Para conocer el valor de una variable, una forma es con
Código:
echo $nombre_variable
La variable $PATH contiene todas las rutas donde el sistema va a buscar binarios que correspondan con lo que vos escribís en consola.
Si vos escribís echo $PATH, se muestran en pantalla todas esas rutas separadas por ":" .

Entonces, si lo que vos querés es que al escribir pip en consola, el sistema sepa buscar el ejecutable, necesitás indicar la ruta hacia el ejecutable en la variable de entorno $PATH.
Si por ej. el ejecutable está en /usr/local/lib/pip/pip ; la ruta sería
/usr/local/lib/pip , es decir, la carpeta contenedora del ejecutable.

Para agregar la ruta, sería como antes mencioné:
Código:
export PATH=$PATH:/usr/local/lib/pip
El inconveniente de hacer esto, es que los cambios van a ser temporales, es decir, haciedo esto solo funcionaría pip en la consola donde hallas ejecutado ese export.

Es que en realidad, cada vez que abrís una consola, ésta ejecuta un fichero ubicado en el home del usuario que la invoca, llamado .bashrc con toda la información inicial de las consolas que abra el usuario, valga la redundancia.

Entonces, una manera de efectuar cambios permantentes en la variable PATH sería mediante el archivo .bashrc de tu home.

La otra manera de lograr lo mismo, es crear un enlace simbólico del ejecutable en cuestión y ubicarlo en alguna de las rutas en las que busca el sistema. Una de éstas rutas es /usr/local/bin . Entonces, el procedimiento para crear el enlace simbólico sería así:

Código:
# cd /usr/local/bin
# ln -s /usr/local/lib/pip/pip
El primer comando es para ubicarte en una de las rutas del sistema especificadas en la variable $PATH.
El segundo, es para crear un enlace simbólico del ejecutable pip en la capeta actual. Como no especificamos nada, el comando ln le va a dar al enlace sombólico el mismo nombre que tiene el fichero a donde apunta el enlace simbólico, creando así un enlace simbólico de nombre pip que apunta al ejecutable pip en /usr/local/bin.
Y esto es parte de lo que resaltaste en negrita: Vos hiciste un enlace simbólico a la carpeta contenedora del ejecutable, no al ejecutable. Es decir, según mi ejemplo, erróneamente hiciste un enlace hacia /usr/local/lib/pip y no hacia /usr/local/lib/pip/pip , que sería lo correcto.

Entonces, la próxima vez que teclees pip en consola, ésta va a buscar un binario con el mismo nombre en las carpetas especificadas en la variable de entorno $PATH, y por lo tanto en /usr/local/bin , donde lo va a encontrar porque lo creamos.

El inconveniente de esta forma, es que en siertos casos podría fallar el programa, el que falle o no depende de cómo esté echo, hay programas que necesitan ejecutarse desde su carpeta, y al ejecutarlos desde otra carpeta, quizá intente buscar archivos que no existen, probablemente fallando.

Por último, o por lo menos la última manera que se me ocurre, es especificar manualmente la ruta del binario para ejecutarlo, es decir:
Código:
/usr/local/lib/pip/pip
Que sería exactamente lo mismo que especificar la ruta de la carpeta contenedora en la variable $PATH y luego teclear pip.

Ahh, y también, podés usar un comando llamado alias. Te dejo que lo busques, es muy sencillo usarlo y hay mucho info en Google.

Otra cosa: No se qué será pip, pero suponiendo que es un programa sin interfaz gráfica, no tiene mucho sentido hacerle doble click, ya que jamás verías nada, por lo menos nada útil.

Otra: En algunos sistemas, tecleando ls -l o simplemente ls, te colorea con rojo los enlaces simbólicos rotos, u algún otro color que resalte, eso te facilitaría saber si estás haciendo algo mal o no. También, usando ls -l, podés ver hacia dónde apuntan los enlaces simbólicos, muy util también.

Salu2!
  #5 (permalink)  
Antiguo 18/03/2013, 09:24
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas
Mensajes: 24
Antigüedad: 7 años, 2 meses
Puntos: 1
Respuesta: Ubuntu enlace simbolico a pip-python

Buenas @Pistonasos todo bien???

Disculpa la tardanza de verdad. Muchas gracias por la respuesta a estado excelente y lo he entendido a la perfección.

Lo que he hecho al final a sido investigar mas sobre pip y lo he instalado (he borrado anteriormente la carpeta que ya tenia) y lo he instalado no se como describirlo pero fue con estos comandos:

Código BASH:
Ver original
  1. curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
  2. $ [sudo] python get-pip.py
y luego ejecute la instalacion de los complementos que necesitaban pip y ha funcionado sin problemas.

Muchas gracias por tomarte tiempo para escribir esa repuesta. Se que me hubiese funcionado y de seguro le funcionara a alguien en otra oportunidad. Espero no lo tomes a mal man. Muchas gracias nuevamente, salu2.

Etiquetas: enlaces, python
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:38.