1

Creé un código en Python 3.6 pero necesito usar PySide. El problema es que no puedo instalar Pyside en Python 3.6 vía pip en Windows ya que me dice que no es una versión compatible.

Desinstalé Python 3.6 e instalé la versión 2.7 donde si puedo instalar PySide. Luego al abrir el código que había creado ya no funcionó mas. Me da error en casi todas las líneas y no entiendo que puede ser.

nemo=input("ingresa algo de 10 letras")
a=nemo[0:3]     
v=int(nemo[3:6])/10 
m_venc=nemo[6:8] 
y_venc=nemo[8:10]
print(" el instrumento es un :", a)
print("vence en el mes :")
print(" la tasa cupon anual es :", v, "%")

input("apreta enter para salir ;)")

Pongo las primeras lineas como ejemplo, ya que tengo error en todas. ojala puedan ayudarme.

FJSevilla
  • 55,603
  • 7
  • 35
  • 58
Richie
  • 31
  • 7

1 Answers1

0

Si tienes problemas para instalar PySide desde pip puedes descargar el binario desde https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyside si usas Windows o usar los paquetes de la distribución en Linux si están disponibles (En ArchLinux por ejemplo se encuentran en los repositorios y se puede usar Python 3.6 sin problemas).

Otra opción es que instales Python 3.4, el cual está soportado y será compatible con el código que ya tienes, será más simple que intentar portar todo el código a Python 2, sobre todo si este es extenso.

En caso contrario no te queda otro remedio que hacer compatible tu código para Python 2. El salto y las diferencias entre Python 2 y Python 3 fue importante, lo que hace en muchos casos los códigos incompatibles entre ellos. Puedes ver una lista general de diferencias en:

https://docs.python.org/3.0/whatsnew/3.0.html

En el código que muestras hay dos cosas a cambiar si quieres un comportamiento similar:

  • input ha de ser sustituida por raw_input. Puedes ver las diferencias en:

    Duda con raw_input()

  • El tipo de salida de la división en Python 2 depende de los tipos de los operandos. En Python 3 / aplica siempre la división real. Para obtener el mismo resultado puedes importar division de __future__.

El código podría quedar así:

from __future__ import division

nemo=raw_input("ingresa algo de 10 letras")
a=nemo[0:3]     
v=int(nemo[3:6])/10 
m_venc=nemo[6:8] 
y_venc=nemo[8:10]
print(" el instrumento es un :", a)
print("vence en el mes :")
print(" la tasa cupon anual es :", v, "%")
raw_input("apreta enter para salir ;)")

Puedes también tener problemas con la codificación de las cadenas.


Edición:

Dado que especificas que usas Windows con arquitectura de 64 bits, la forma más simple de instalar PySide en Python 3.6 es como comente anteriormente usar los binarios precompilados que proporciona Christoph Gohlke de la Universidad de California. Los pasos a seguir son:

  • Descargar la versión adecuada para nuestro intérprete, en este caso necesitamos la apropiada para Python 3.6 de 64 bits, que sería en este caso sería PySide‑1.2.4‑cp36‑cp36m‑win_amd64.whl. Es importante asegurarse de que estamos usando la versión de 64 bits de Python 3.6.

  • Abrir la terminal (CMD) y usar pip para instalar usando el archivo whl que nos acabamos de descargar:

    py -3.6 -m pip install ruta_al_archivo.whl
    

Un ejemplo de instalación con el whl en la carpeta Descargas que puede servir como ejemplo:

introducir la descripción de la imagen aquí

FJSevilla
  • 55,603
  • 7
  • 35
  • 58
  • reinstala la version 3.6 y ahora el codigo funciona perfecto. pero no logro instalar pyside :(. – Richie Nov 21 '17 at 03:28
  • ¿Que sistema operativo usas? – FJSevilla Nov 21 '17 at 03:30
  • Yo lo tengo instalado en ArchLinux con Python 3.6 sin problemas. En windows puedes mirarte https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyside, descargarte el binario que corresponda e instalarlo vía pip. La otra opción es que instales Python 3.4. PySide ha quedado bastante desfasado, a PySide2 no creo que le quede mucho para salir con soporte para Qt5 y versiones recientes de Python. Mientras tanto si no se puede usar PyQt por tema de licencias hay que apañarse como se pueda :(.... – FJSevilla Nov 21 '17 at 03:41
  • @Richie tienes q correr el pip con permisos de administrador – Egon Stetmann. Nov 21 '17 at 06:44
  • @RenatoA. el problema no es pip, me dice que pyside es compatible hasta la version 3.4 cuando intento instalarlo!!. – Richie Nov 21 '17 at 23:58
  • @Richie como te comente antes puede ser posible instalarlo y usarlo con Python 3.6, si indicas tu sistema operativo sería más fácil orientarte. No puedes usar pip normalmente, pero es un problema de configuración del paquete que hay disponible en PyPi más que una incompatibilidad real con la versión 3.6. He probado también en Windows usando los binarios que te indico arriba y funciona perfectamente con Python 3.6. Incluso con algunas modificaciones es posible instalar compilando nosotros mismos desde las fuentes. – FJSevilla Nov 22 '17 at 00:27
  • @FJSevilla tengo windows 7 64 bits! – Richie Nov 22 '17 at 03:43
  • @Richie he editado la respuesta añadiendo al final de ella la forma más simple de instalarlo en Windows con Python 3.6 junto a una captura del proceso por si te interesa. – FJSevilla Nov 22 '17 at 07:38
  • @FJSevilla funcionó perfecto. muchas gracias! – Richie Nov 22 '17 at 16:12