last day (44 days later) » 

7:55 PM
Dígame
 
Hola bro como estas ?
Te recuerdas el código que estuvimos haciendo.
 
Sí, vagamente. Algo de conectar por telnet a un sitio, extraer una información y procesarla con expresiones regulares
 
00 Tratamiento: GNCT
VIN21T7BVINA032 130
MOVI1L7BVINA032 326317322611164
02 Tratamiento: GNCT
VIN21T7BVINA032 131
MOVI1L7BVINA032 326317322665560
04 Tratamiento: GNCT
VIN21T7BVINA032 132
06 Tratamiento: GNCT
VIN21T7BVINA032 133
08 Tratamiento: GNCT
VIN21T7BVINA032 134
EPHO1L7BVINA032 326322322189891
VIN21T7BVINA032 326322322189891
10 Tratamiento: GNCT
VIN21T7BVINA032 135
EPHO1L7BVINA032 326322323132059
12 Tratamiento: GNCT
VIN21T7BVINA032 136
MOVI1L7BVINA032 136
14 Tratamiento: GNCT
VIN21T7BVINA032 137
 
Te agradecería que pegaras el codigo, no la imagen. Puedes pegarlo directamente en el chat y luego darle al botón "fixed font" antes de enviarlo
O si prefieres, subirlo a un pastebin y poner aqui el enlace
 
import telnetlib
import re

def espera_prompt():
    return tn.read_until("\n>")

HOST 	= "172.26.1.195"
CRED 	= "ocolme soporte"

tn = telnetlib.Telnet(HOST)

espera_prompt()
tn.write(CRED  + "\r\n")

numeros 	= ['0322969739']

emergencia  = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
                '1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
                '149']
Necesito agregar la respuesta en un arreglo
Si te fijas he agregado:

arreglo =[]

arreglo.append([trata,partes[1], partes[2]])
Pero resulta que cuando viene variables vacias no lo agrega en el array ejemplo:
62 Tratamiento: VACT
Solo me esta tomando las variables que viene llenas ejemplo:

Tratamiento: GNCT
VIN21T7BVINA032 130
MOVI1L7BVINA032 326317322611164
Quisiera que se guardara todo ya que es indispensable almacenarlo
 
8:00 PM
Ya veo, pero... ¿tú entiendes claramente la misión de la indentación en python?
te lo pregunto porque la mayoría de tus preguntas parecen venir de que no tienes claro esto
 
Un poco, es que recien me vengo iniciando
 
¿conoces algún otro lenguaje? (para poder explicártelo por analogía)
 
PHP
 
Ok, pues en PHP tienes llaves para delimitar un bloque de código
 
Correcto.
 
8:02 PM
en python no hay llaves, pero se usa la indentación para eso mismo
todas las líneas que tengan la misma indentación, son el mismo bloque
 
Por lo que veo aquí no se utiliza ni (;})
 
por tanto el trozo que tienes que dice:
 
Ah vale
 
            for d in datos:
                partes = d.split()
                #print partes[1], partes[2]
                arreglo.append([trata,partes[1], partes[2]])
Es como si en PHP hubieras hecho algo así:
 
for d in datos{
partes = d.split()
#print partes[1], partes[2]
arreglo.append([trata,partes[1], partes[2]])
}
 
8:03 PM
Eso mismo
 
Si algo así
 
así que el append que quieres hacer se hace como parte del bucle
 
Con los ;
 
pero si resulta que datos está vacío, entonces el bucle no se hace ninguna vez
y por eso no se añade nada al arreglo
en ese caso
 
Si mira esta es la respuesta que me sale del array
Si te fijas no sale ninguno con VACT
 
8:06 PM
Claro, porque en los trozos en los que el tratamiento es VACT, la expresión regular que después buscamos no está. Y por eso datos está vacío, el bucle for no se ejecuta y no se añade nada para ese caso
¿Qué querrías añadir en ese caso?
 
Necesito almacenar toda la data bro tal cual asi como viene en le array
Pero con los datos VACT
 
pero insisto, cuando el tratamiento es VACT, no hay datos que guardar, si mal no recuerdo
 
Y que las columnas que vengan vacias las deje como null
Exacto solamente trae esto:

62 Tratamiento: VACT
Necesito guardar VACT
Esa palabra
 
ah, entonces querrías guardar algo como ["VACT", None, None] ?
 
Exacto bro
Que las otras variables sean null para que se llenen en la bd
 
8:08 PM
pues bastaría añadir
            if not datos:
                arreglo.append([trata, None, None])
Es decir, quedaría todo así:
import telnetlib
import re

def espera_prompt():
    return tn.read_until("\n>")

HOST 	= "172.26.1.195"
CRED 	= "ocolme soporte"

tn = telnetlib.Telnet(HOST)

espera_prompt()
tn.write(CRED  + "\r\n")

numeros 	= ['0322969739']

emergencia  = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
                '1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
                '149']
si "datos" está vacío, guardamos el caso especial con los None. Y si no está vacío, el bucle for anterior ya habrá guardado los datos apropiados
if not datos mira si datos está vacío
debes "traducirlo" mentalmente como "si no hay datos"
 
None se crea por defecto en python ?
 
None es un simbolo especial en python equivalente al null de otros lenguajes
 
Ah no disculpa ya vi la linea:

arreglo.append([trata, None, None])
 
no puedo ver tu pastebin, me dice que es privado
 
Aparentemente ya esta trayendo los datos bien bro
 
8:13 PM
no sabría decirte. no sé cómo son los datos que esperas :-)
También podrías hacer uso de esta otra construcción, pero es muy específica de Python y en otros lenguajes no existe, por lo que quizás te líe
            for d in datos:
                partes = d.split()
                #print partes[1], partes[2]
                arreglo.append([trata,partes[1], partes[2]])
            else:
                arreglo.append([trata, None, None])
 
Si la primera la entiendo bien
 
for ... else es específico de Python. La parte else se ejecuta sólo si no se ejecutó nada en el for (o sea, si no había datos)
 
Me recomiendas enviar estos datos directamente a la base de datos desde el mismo archivo de python ?
O crear un txt con la info?
 
es rara porque else suele verse con los if, no con los for
 
Yo lo quiero hacer desde python porque tengo problemas al instalar pip
 
8:14 PM
Yo te recomendaría crear un txt con la info si tienes algún otro mecanismo para enviarlo a la base de datos
 
f.write(arreglo)
 
de lo contrario tendrías que ponerte a mirar cómo conectar con bases de datos desde python, lo que puede ser complejo
 
Entonces en esa linea puedo pasar toda la info?
 
No, mejor lo guardas en un formato de texto
No, esa línea no funcionará. Tienes que volcarlo en algún formato de texto. Por ejemplo JSON, o CSV
cuál te viene mejor para después subirlo a la base de datos?
 
puede ser en separador por ";"
?
Para luego hacer un php y capturarlo asi me manejo mejor
 
8:16 PM
Sí. Nada más simple. Un momento que te digo cómo va
 
Si lo mas simple
with open(mi_path, 'a+') as f:
Entonces esta linea que tengo aqui no me sirve de nada
 
Es verdad, mejor la quitamos
 
Vale. La voy a eliminar
 
Un momento, el editor me está dando problemas y no puedo desindentar...
 
Vale bro esta bien
 
8:21 PM
import telnetlib
import re

def espera_prompt():
    return tn.read_until("\n>")

HOST 	= "172.26.1.195"
CRED 	= "ocolme soporte"

tn = telnetlib.Telnet(HOST)

espera_prompt()
tn.write(CRED  + "\r\n")

numeros 	= ['0322969739']

emergencia  = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
                '1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
                '149']
A ver si esto te funciona
He añadido al final del todo un pequeño bucle para volcar a disco el array
no sé si los None darán problemas, me temo que sí
¿te valdría volcarlos como "null"?
 
Voy a probar
Un momento
Traceback (most recent call last):
File "prueba.py", line 47, in <module>
f.write(partes[1])
NameError: name 'f' is not defined
Me dice esto
Si como null no hay problemas
Que esten vacios, solo me interesaba el de VACT claro no siempre pueden que vengan vacios
 
ah, tienes que quitar eso también, claro, al quitar el with open() que había al principio. Un momento, te pego nueva versión
import telnetlib
import re

def espera_prompt():
    return tn.read_until("\n>")

HOST 	= "172.26.1.195"
CRED 	= "ocolme soporte"

tn = telnetlib.Telnet(HOST)

espera_prompt()
tn.write(CRED  + "\r\n")

numeros 	= ['0322969739']

emergencia  = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
                '1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
                '149']
 
Vale pruebo
Al parecer aun se esta ejecutando
Puede que tarde o se quede colgado ?
 
No sé, es un poco raro
 
Si todavia se esta ejecutando
Tampoco aun crea el directorio "fichero.txt" en el servidor.
 
8:29 PM
No, eso no se creará hasta que no termine. Y se creará en el ordenador en que estes ejecutando el script python
 
Si lo estoy ejecutando en el servidor
Aun se esta ejecutando
 
Eso ya es raro. Y no ha sacado nada aún por pantalla?
 
Aun nada.
 
Pues interrúmpelo. Habrá que añadirle algunos print para ver qué está haciendo y dónde queda trabado
 
Si yo creo
with open(mi_path, "w") as f:
    for linea in arreglo:
        f.write(";".join(linea))
        f.write("\n")
Puede que sea ahí
 
8:34 PM
prueba esta version que tiene varios print para ir viendo por dónde va la ejecución
import telnetlib
import re

def espera_prompt():
    return tn.read_until("\n>")

HOST 	= "172.26.1.195"
CRED 	= "ocolme soporte"

tn = telnetlib.Telnet(HOST)

espera_prompt()
tn.write(CRED  + "\r\n")

numeros 	= ['0322969739']

emergencia  = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
                '1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
                '149']
Yo sospecho que se quedará trabado en "Esperando desconexion"
 
Efectivamente se esta quedando trabajado en "Esperando desconexion" ?
 
Sí, lo que sospeché
 
Genio
 
pues nada, quita el salida = tn.read_all()
y pon tn.close()
 
Dejo el ultimo codigo que me enviaste y solo elmino esa linea ?
 
8:37 PM
 
Vale
 
o cámbiala por tn.close()
 
Esperando desconexion
Desconectado, escribiendo resultados en disco
Resultados escritos. FIN
Imprimio todo lo demas, mas esto
 
Ok, pues mira a ver si el archivo txt tiene lo que quieres
 
Si ahi lo esta separando por ";"
arreglo.append([trata,partes[1], partes[2]]) le puedo agregar el "i" que serian los numeros ?
arreglo.append([i,trata,partes[1], partes[2]])
 
8:41 PM
eso es para meter el número, no?
 
acuérdate de meterlo también en el caso de los "null"
 
SI correcto
Aparentemente ya quedo hermano
Voy a probar agregandole mas numeros aqui:

numeros = ['0322969739']
ya quedo hermano...
Esta muy bien así
 
👍
 
Te debo otra mas a la lista :-) genio!
 
8:49 PM
Bah, no es nada :-)
 
:-)
Me esta gustando pytjon jajajaja
 
Se le va pillando el gusto sí. Y luego ya no querrás volver a otro lenguaje
 
No bro y por lo que he visto python con django es uno de los futuros
 
Para el desarrollo web Django está ganando muchos adeptos sí. Pero Python es útil fuera del ámbito web, sobre todo como lenguaje para data science (estadísticas, inteligencia artificial, etc). Y para mil y un tareas "de andar por casa" como la que acabamos de hacer
Donde Python aún es inútil es en desarrollo movil, y en el lado cliente del web. Ahi javascript reina
aunque web assembly podría cambiar eso pronto...
 
Si, pero poco a poco esta creciendo..
 
8:55 PM
Ha pegado una gran crecida. Es el lenguaje del año (2019) según el índice TIOBE
 
Sabes que la otra vez trate de instalar pip para python 2.7 en centos 7 y me da problemas
Intersante.
 
Es que andas con versiones de python antiguas
 
Y no he podido conseguir como instalarlo.
 
tendrías que pasarte a la 3.5 como mínimo
 
Y si actualizo el python no se romperia esto lo que acabamos de hacer ?
Para actualizar es solo un update nada mas ?
 
8:56 PM
no creo que sea simplemente update...
y sí, python 3.5 rompería la compatibilidad de lo que acabamos de hacer
por eso normalmente se suelen tener instaladas ambas versiones
la 2.7 para scripts "antiguos" que funcionan y no quieres tocar
y la 3.x para desarrollos nuevos
 
Se puede tener instalar 2 versiones en una misma maquina ?
 
normalmente python a secas invoca la 2.7, mientras que python3 invoca la nueva
 
Ah comprendo
 
análogamente también tendrías pip y pip3
lo que instales con pip funcionaría con python2.7 y lo que instales con pip3 funcionará cuando ejecutes scripts con python3
 
sudo yum install python-pip
Yo he intentando instalar pip con este comando
 
8:59 PM
pero tampoco se recomienda usar directamente pip (ni pip3) para instalar cosas, porque eso instala "globalmente" (y requiere permisos de sudo)
 
--> Resolución de dependencias finalizada
Error: Paquete: python-pip-7.1.0-1.el6.noarch (epel)
Necesita: python(abi) = 2.6
Instalado: python-2.7.5-58.el7.x86_64 (@anaconda)
python(abi) = 2.7
python(abi) = 2.7
Disponible: python-2.7.5-76.el7.x86_64 (base)
python(abi) = 2.7
python(abi) = 2.7
Disponible: python-2.7.5-77.el7_6.x86_64 (updates)
python(abi) = 2.7
python(abi) = 2.7
Disponible: python34-3.4.10-1.el6.i686 (epel)
python(abi) = 3.4
Podría intentar utilizar el comando --skip-broken para sortear el problema
Y me sale este mensaje
 
lo que se usa son "entornos virtuales". Para python2 tienes virtualenv (que también vale para python3)
es muy raro que para instalar pip te requiera python 2.6
intenta instalar python-virtualenv a ver si te da problemas
 
-bash: python-virtualenv: no se encontró la orden
 
he dicho instalar :-)
sudo yum install python-virtualenv
 
Porque quiero instalar esto, porque esto:

numeros = ['0322969739','0322484873']

emergencia = ['130','131','132','133','134','135','136','137','138','139','1400','1402','1403','1404','1405','1406','1407',
'1408', '1409','1411','1412','1413','1414','1415','1416','1418','1419','1420','1421','1424','1451','143','147',
'149']
Van a venir de una bd
 
9:01 PM
Buf... lo de las bd no es trivial. ¿Sabes SQL?
 
qué bd?
 
Ya instalo lo del virtual
 
Ah, eso te ha funcionado?
 
oracle, mysql
Si
Instalado:
python-virtualenv.noarch 0:15.1.0-2.el7

Dependencia(s) instalada(s):
python-backports.x86_64 0:1.0-8.el7
python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7
python-devel.x86_64 0:2.7.5-77.el7_6
python-ipaddress.noarch 0:1.0.16-2.el7
python-setuptools.noarch 0:0.9.8-7.el7

Dependencia(s) actualizada(s):
python.x86_64 0:2.7.5-77.el7_6 python-libs.x86_64 0:2.7.5-77.el7_6

¡Listo!
 
9:02 PM
ah, pues vamos a probar a usarlo. Intenta lo siguiente:
virtualenv ~/venvs/prueba
 
New python executable in /root/venvs/prueba/bin/python
 
Eso creará una carpeta llamada venvs en tu directorio de usuario, y dentro de ella otra llamada prueba
 
Installing setuptools, pip, wheel...done.
 
efectivamente, dentro de esa carpeta que acabamos de crear tienes una instalación local completa de python
para usar esa versión local en vez de la global tienes que acordarte de ejecutar el siguiente comando cada vez que entres en sesión
 
A ver que no la ubico xD
No se donde se creo estoy como rut
root*
 
9:04 PM
source ~/venvs/prueba/bin/activate
Oh... no deberías haber ejecutado esto como root. No pasa nada, pero no es aconsejable. Toda la gracia de virtualenv es evitarte ser root y aún así poder instalar cosas (localmente, sin afectar a la global)
 
Ohh comprendo
 
Lo bueno es que esa "instalación local" que acabamos de hacer está toda contenida en una sola carpeta. Basta borrar esa carpeta y desaparece sin dejar rastro
 
Jajaja
 
es ideal para hacer pruebas de instalación de paquetes, a ver de qué van, sin "contaminar" el sistema
con cosas raras
 
Esta interesante
Entonces con esa deberia de poder instalar pip ?
 
9:06 PM
así puedes tener como si dijéramos diferentes "entornos python", cada uno con diferentes paquetes instalados
 
Voy a ingresar con otra cuenta que no sea root
 
en realidad ya tienes instalado pip también, como parte de la carpeta esa
en esa carpeta tienes un nuevo python y un nuevo pip. Y puedes instalar muchos más paquetes, que irían a esa carpeta también siempre que para instalarlos uses el pip que está en esa carpeta
ahora te guío
¿Conoces el comando unix which?
 
Tengo una carpeta para mi donde va a estar el desarrollo llamada "desarrollo"
 
virtualenv te permite instalar entornos donde quieras, podrías hacerlo dentro de "desarrollo" si quieres
pero es costumbre ponerlos juntos en ~/venvs/ o algo similar
 
El archivo que hemos trabajado es "prueba.py"
Ya cree la carpeta "venvs" con mi usuario normal que no es root
 
9:09 PM
Ok.
Y la carpeta esta de desarrollo es tu "home"?
 
vale
pues como ibamos diciendo.... conoces which?
 
lo he escuchado no lo conozco a fondo
 
ejecuta which python y te dirá en qué ruta está el ejecutable python que el sistema usa por defecto
 
/usr/bin/python
 
9:11 PM
correcto
Ahora vamos a "activar" el entorno virtual, para lo que tienes que poner
source ~/venvs/prueba/bin/activate
verás que el prompt te cambia
y pone (prueba) delante
 
para recordarte que estás dentro de un entorno virtual
 
Ah vale
 
en realidad eso sólo significa que el PATH ha cambiado, y ahora python ya no es el "global"
prueba a poner which python ahora
 
~/venvs/prueba/bin/python
 
9:12 PM
ves?
o sea que cuando pongas python se ejecutará ahora este, en vez de/usr/bin/python
prueba which pip
 
claro ahi va a traer el python
 
puedes poner python --version para ver qué versión de python te ha instalado localmente, pero será la misma versión que tenía el sistema
o sea, la 2.7
 
Si correcto
 
así que puedes seguir ejecutando tu prueba.py igual que antes
 
Si la 2.7.5
 
9:15 PM
o sea python prueba.py. Seguirá funcionando igual que antes
 
Si lo ejecute y sin problemas
 
pero ya que ahora es tu versión local python la que lo está ejecutando, podrá hacer uso de más paquetes que instales localmente
 
Esta funcionando
 
prueba a instalar un paquete a ver si va. Por ejemplo requests
pon pip install requests
 
-bash: pon: no se encontró la orden
 
9:16 PM
"pon" era un verbo :-)
pip install requests
 
Jajaja
Collecting requests
/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/connection.py:279: SystemTimeWarning: System time is way off (before 2014-01-01). This will probably lead to SSL verification errors
SystemTimeWarning
Could not fetch URL https://pypi.python.org/simple/requests/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:618) - skipping
Could not find a version that satisfies the requirement requests (from versions: )
Ese error ya me venia dando varias veces..
 
Bueno, parece que tienes algún problema con la hora de tus sistema
eso te impide instalar nada, porque no pasa la verificación de los certificados
 
Es problema de la hora del servidor cierto ?
 
pon date a ver qué fecha/hora te muestra
 
Se tendria que actualizar..
La hora
Y fecha
dom abr 3 06:27:01 -03 2011
xD
2011 :@
 
9:18 PM
Claro, no me extraña que proteste :-)
Prueba a ver
 
Que inteligente capa vez mas me gusta la programación :@
 
ntpdate ntp.ubuntu.com
 
3 Apr 06:28:14 ntpdate[49545]: bind() fails: Permission denied
 
ah con sudo
 
3 Apr 06:29:42 ntpdate[49558]: no server suitable for synchronization found
 
9:21 PM
Hm
 
Como ?
 
sudo ntpdate es.pool.ntp.org
?
 
No hace nada
3 Apr 06:31:30 ntpdate[49570]: no server suitable for synchronization found
 
vaya...
 
xD
Esta complicado no ?
mi_path = "fichero.txt"
Y yo queria colocarle la fecha aqui
 
9:24 PM
sudo ntpq -p
 
ntpq: read: Connection refused
 
Bueno, pues habrá que poner la fecha a mano
sudo date --set="3 Apr 2019 06:31:50"
o la hora que sea ahora mismo ahí
 
mié abr 3 06:31:50 -03 2019
 
es esa tu hora local?
 
mié abr 3 05:24:30 -03 2019
Listo ya la cambie
 
9:26 PM
bueno, en todo caso ya no estará retrasada 8 años!
reintenta pip install requests
 
Collecting requests
Exception:
Traceback (most recent call last):
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/basecomman d.py", line 215, in main
status = self.run(options, args)
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/commands/i nstall.py", line 335, in run
wb.build(autobuilding=True)
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
 
sigue fallando algún certificado. ¡Cuántos problemas! En mi máquina era más fácil :-)
intenta esto
pip install --upgrade pip
 
Collecting pip
Exception:
Traceback (most recent call last):
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/commands/install. py", line 335, in run
wb.build(autobuilding=True)
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/wheel.py", line 7 49, in build
self.requirement_set.prepare_files(self.finder)
File "/home/desarrollo/venvs/prueba/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_f
 
Grrr
 
Sera por la version de pip que se le quiere instalar ? No es compatible con la de python
 
9:29 PM
No, no es por eso. Es que no tienes los certificados raiz apropiados
podemos decirle que confíe en ellos de todas formas. Intenta esto
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip
 
Requirement already satisfied: pip in ./venvs/prueba/lib/python2.7/site-packages
Requirement already satisfied: setuptools in ./venvs/prueba/lib/python2.7/site-packages
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
 
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip
 
Collecting pip
Downloading https://files.pythonhosted.org/packages/5c/e0/be401c003291b56efc55aeba6a80ab790d3d4cece2778288d65323009420/pip-19.1.1-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 8.4MB/s
Installing collected packages: pip
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-19.1.1
Al fin :@
 
whoo
y a ver si ahora ya deja
pip install requests
 
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting requests
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:618)'),)': /packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
 
9:32 PM
Bah, siempre el mismo problema. Pues nada, tienes que añadirle siempre las opciones de que confíe en los certificados
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests
 
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting requests
Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
|████████████████████████████████| 61kB 4.1MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4
 
es una pesadez tener que añadir eso siempre, pero qué se va a hacer. Tu máquina tiene certificados antiguos. Anota el comando para el futuro
 
Lo voy a guardar..
 
para instalar cualquier paquete X en ese entorno virtual, debes hacer
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org X
 
Ya lo agregue
 
9:34 PM
y recuerda que todo lo que instales mientras el entorno está "activado" es local a ese entorno, no global
 
(prueba) [desarrollo@valhalla ~]
Pero no necesarimente tengo que estar aqui adentro ?
 
cuando salgas de sesión y entres otra vez, ya no estarás en el "entorno", por lo que el python que se ejecutará será el global, y en él no tendrás los paquetes instalados
 
Si instalo un paquete afuera sera para el global ?
 
no, la carpeta en que estés es irrelevante
 
Ah ya
 
9:34 PM
lo que importa es que lo hayas "activado" antes
 
Es la que esta activa entonces
 
y tengas el prompt especial
para desactivarlo y volver al global basta poner deactivate
 
en el local ya esta instalado pip
Para instalarlo global tengo que hacer esos mismos pasos ?
 
y para activarlo otra vez source ~/venvs/prueba/bin/activate
no, en global mejor no instales nada
 
Vale
 
9:36 PM
no se recomienda tocar la versión global, podrías afectar a otras herramientas del sistema
 
Vale vale
 
cuando quieras instalar un paquete nuevo, o bien creas un entorno virtual nuevo, o bien activas uno que ya tuvieras creado
 
Vale comprendo
 
lo normal es que tengas un entorno virtual por cada proyecto en desarrollo
 
Claro para que asi tenga cada uno sus dependencias
 
9:37 PM
y uses pip en él para instalar los paquetes que requiera ese proyecto
eso es
 
Comprendo
 
así cada proyecto puede tener una versión distinta de un mismo paquete, sin que "choquen"
 
Listo
Entonces ya puedo instalar mysql por ejemplo para ver si logro conectarme
 
si
 
Vale
 
9:38 PM
puedes desinstalar el requests que usamos para probar
pip uninstall requests
 
Lo desintalo ?
Lo elimino?
 
si no lo vas a necesitar...
siempre puedes volver a instalarlo más tarde
 
Ok
Vale
Si en estos momentos me interesa en mysql
 
y recuerda que todo esto en realidad está "contenido" en la carpeta ~/venv/pruebas
 
Voy a tratar de instalar la libreria para python
 
9:39 PM
si la cagas mucho y todo deja de funcionar, borra esa carpeta y crea un entorno virtual nuevo, limpio :-)
 
Correcto
Muy bien, eso es interesante..
 
Bueno, ya hemos cubierto hoy un largo trecho
te tengo que dejar
 
Demasiado diria yo
Voy a dormir tranquilo hoy
Cuidate bro
Abrazos
 
igualmente, chao
 
Gracias por tu ayuda
 

  last day (44 days later) »