Autor
|
Tema: convertir code de python2 a 3.7 (Leído 3,691 veces)
|
sytem200
Desconectado
Mensajes: 49
|
alguien podria brindarme un poco de su conocimiento tengo un cliente y un servidor pero creo que esta echo en python 2.x podrian decirme los errores o cuales codigos modificar para que sea a python 3.7 gracias servidor import socket import threading import commands
def conexiones(socket_cliente): peticion = socket_cliente.recv(1024) print "[*] Mensaje recibido: %s" % peticion respuesta = commands.getoutput(peticion) socket_cliente.send(respuesta) socket_cliente.close()
ip = "0.0.0.0" puerto = 5555 max_conexiones = 5 servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
servidor.bind((ip, puerto)) servidor.listen(max_conexiones)
print "[*] Esperando conexiones en %s:%d" % (ip, puerto)
while True: cliente, direccion = servidor.accept() print "[*] Conexion establecida con %s:%d" % (direccion[0] , direccion[1]) conexiones = threading.Thread(target=conexiones, args=(cliente,)) conexiones.start()
Cliente import socket
servidor = "127.0.0.1" puerto = 5555
cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM) cliente.connect((servidor, puerto)) cliente.send("ls /"); respuesta = cliente.recv(4096) print "[*] Respuesta recibida: "+respuesta [code] [/code]
|
|
|
En línea
|
|
|
|
Aguijon_zerO
Desconectado
Mensajes: 25
Jod@nse---
|
alguien podria brindarme un poco de su conocimiento tengo un cliente y un servidor pero creo que esta echo en python 2.x podrian decirme los errores o cuales codigos modificar para que sea a python 3.7 gracias servidor import socket import threading import commands
def conexiones(socket_cliente): peticion = socket_cliente.recv(1024) print "[*] Mensaje recibido: %s" % peticion respuesta = commands.getoutput(peticion) socket_cliente.send(respuesta) socket_cliente.close()
ip = "0.0.0.0" puerto = 5555 max_conexiones = 5 servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
servidor.bind((ip, puerto)) servidor.listen(max_conexiones)
print "[*] Esperando conexiones en %s:%d" % (ip, puerto)
while True: cliente, direccion = servidor.accept() print "[*] Conexion establecida con %s:%d" % (direccion[0] , direccion[1]) conexiones = threading.Thread(target=conexiones, args=(cliente,)) conexiones.start()
Cliente import socket
servidor = "127.0.0.1" puerto = 5555
cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM) cliente.connect((servidor, puerto)) cliente.send("ls /"); respuesta = cliente.recv(4096) print "[*] Respuesta recibida: "+respuesta [code] [/code] Otra infeliz victima de "Aprende Python 2.x por que tiene mas soporte"... - En primer lugar.. decídete si vas a identar tabulando o espaciando el codigo por que en 3.x no se tolera esa mezcla. - Despidete de commands, eso ya esta muy viejo, Utiliza el modulo subprocess. - 3.x es muy estricto con el envio de bytes, asi que encodea el mensaje antes de enviarlo si esta en formato string y decodificalo al recibirlo si lo piensas leer. Te doy esas pistas para que lo analises pero no te lo doy resuelto por que aqui no hacemos tareas. Es un poco tedioso pasar de 2.x a 3.x pero a todos les llega el dia del juicio..
|
|
« Última modificación: 3 Agosto 2019, 05:24 am por AguijoN_ZerO »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
1) tengo un cliente y un servidor pero creo que esta echo en python 2.x fijate si anda en python 3.x y ahí sabrás si anda o no 2) podrian decirme los errores o cuales codigos modificar para que sea a python 3.7 python trae por defecto un conversor de 2.x a 3.x 2to3.py fijate como se usa y listo
|
|
|
En línea
|
|
|
|
sytem200
Desconectado
Mensajes: 49
|
gracias por su respuesta pero yo no estoy usando python2 y este code esta en python 2 queria convertirlo a python 3 y e probado 2to3.py y solo sirve para la function print()
|
|
|
En línea
|
|
|
|
Aguijon_zerO
Desconectado
Mensajes: 25
Jod@nse---
|
2to3.py es basura, solo ignora eso.. ni siquiera te conviene por que para adaptarse a los cambios lo mejor es escribirlo todo desde el principio manualmente si tienes pensado aprender python3 .. cuando notes las diferencias tu mismo podras crear un programa de iteracion con expresiones regulares para hacer las conversiones.. Solo sigue las pistas que te di, no es tan dificil como parece..
|
|
« Última modificación: 3 Agosto 2019, 06:08 am por AguijoN_ZerO »
|
En línea
|
|
|
|
sytem200
Desconectado
Mensajes: 49
|
ok muchas gracias
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
2to3.py es basura, solo ignora eso.. a veces me olvido que no todos entienden lo que es el sarcasmo. para alguien que espera todo servido por lo menos que busquen algo, ese script no lleva más de un minuto para desarrollarse, pero no le hago deberes a nadie que no intente nada.
|
|
|
En línea
|
|
|
|
WHK
|
Siempre que una persona me pregunta si debe aprender python 2 o 3 le digo que 3.
Python 3 no es un poco diferente, es muy diferente, una ves que te acostumbras a programar para python2 es un tanto complicado acostumbrarse a python3 ya que te deja algunas malas prácticas al utilizar cosas que ya están obsoletas.
Que cambios básicos notarás en python 3?:
- Identación. - Codificación de caracteres mas estricto. - Manejo de importación de módulos (rutas en el fs). - Librerías nativas alternativas (muchas librerías nativas de python2 ya no son compatibles como urllib). - Manejo de memoria e hilos de proceso. - Cambio en la llamada a funciones (se agregan parentesis, ya no puedes argumentar con espacios). - Formato especial de print, formato de texto, manejo de salto de linea, flush implicito y explicito, etc. - Etc.
Por otro lado, no es llegar y reemplazar cosas para psar de python 2 a 3, debes plantear rehacer el script de cero, por ejemplo, algunas librerías de python 2 ya no funcionan de la misma manera que en el 3, por ejemplo, en python 2 no es muy estricto en cuanto al manejo de strings vs bytes pero en el 3 si y por eso muchos códigos dan error al traducir las funciones, lo mismo sucede con algunos operadores lógicos y matemáticos como el padding de bytes. El otro día estuve portando una función de paquetes TCP a bajo nivel de python 2 a python 3 y tuve que utilizar operadores y funciones totalmente diferentes.
En tu caso no es mucho lo que hay que cambiar, intenta utilizar print con parentesis, reemplazar los strings por bytes y prueba ejecutandolo desde python 3.
|
|
« Última modificación: 3 Agosto 2019, 07:32 am por WHK »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Novato en Python2.7.2
Scripting
|
Deneb_Algebi
|
2
|
2,721
|
23 Marzo 2012, 19:54 pm
por Eleкtro
|
|
|
MOVIDO: Novato en Python2.7.2
Programación General
|
Aprendiz-Oscuro
|
0
|
1,612
|
12 Marzo 2012, 03:22 am
por Aprendiz-Oscuro
|
|
|
[Python2] Pyro: Busca servidores en la red
Scripting
|
wlan0
|
2
|
2,501
|
8 Mayo 2013, 21:26 pm
por daryo
|
|
|
[SOURCE-CODE] Telerik Code Converter Client for Windows - by Elektro Studios
« 1 2 »
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
10
|
13,079
|
12 Noviembre 2017, 13:04 pm
por Eleкtro
|
|
|
[SOURCE-CODE] Telerik Code Converter for Visual Studio - by Elektro Studios
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
1
|
6,337
|
12 Noviembre 2017, 13:05 pm
por Eleкtro
|
|