[Python] Hilo general

Kaiserlau

#240 http://stackoverflow.com/questions/142545/python-how-to-make-a-cross-module-variable espero que te sirva de algo.

Pero vas a "espaguetizar" mucho eso me parece xD.

boqueron

Como veis el Bpython como compilador/ idle?

Al final mi proyecto va a ser basicamente grafico, tengo que dibujar un robot en 3D e ir seleccionando partes del robot (brazos, piernas, cabeza..) e ir rotandolas con un angulo maximo y minimo por pantalla. obviamente la herencia de movimiento se tiene que mantener, si muevo el hombro se tendra que mover el brazo entero :(

Como librerias para este proyecto he estado mirando Pyopengl , VPython y Pyglet.

¿Como vais cada una? ¿Pros y contras de cada una?

Soy un autentico NOOB en Python

1 respuesta
boqueron

Se me ha duplicado el post

KeTo

#242 ¿Tiene que ser python?, eso en Ogre (C++), al basarse en nodos, se hace más o menos fácil.

1 respuesta
boqueron

#244 Tiene que ser en Python por cojones :(

HeXaN

Si en C++ se hace fácil, en Python será dos veces más fácil.

4
B

sabeis como se puede poner para que al pasar un data frame a un txt haya ams espacio entre las columnas?
lo tengo peusto asi.

df.to_csv(r'C:\Users\hdfh\Downloads\fdsa.txt',sep=' ',index=True,header=True)

pero en el txt me salen los datos tipo
1 2 3 4
5 6 7 8

y quiero que los saque asi
1 2 3 4
.....
he probao poner sep='\t' y sucedaneos pero nada xD

1 respuesta
B

#247

No he tocado mucho pandas, pero si lo que quieres es cambiar un separador por otro con replace debería llegar, en gnu/linux con algo así estaría:

cat fdsa.txt | tr -s ' ' '\t'
1 respuesta
B

#248
ni idea de como poner eso en mi codigo

1 respuesta
B

#249

Eso no sería python, digo que simplemente con eso en gnu/linux desde una terminal cambias todos los espacios por tabs de forma fácil y con redireccionar la salida te llegaría para tenerlo formateado.

En python sería algo así, va a ojo, que ni lo pruebo xD.

with open('C:\Users\hdfh\Downloads\fdsa.txt', 'r+') as f:
    lines = f.readlines()
    f.seek(0)
    f.truncate()
    for line in lines:
        line = line.replace(' ', '\t')
        f.write(line)    

Pero bueno, para esto tiraría de sed o translate que es bastante más simple.

2 respuestas
HeXaN

#250

import subprocess
subprocess.Popen("cat fdsa.txt | tr -s ' ' '\t'")
1 respuesta
B

#251

Sep, pero me fije en: C:\Users\hdfh\Downloads\fdsa.txt

Asumí que está en winsux xD

B

#250 invalid mode or filename

vale hay que ponerlo asi.

with open(r'C:\Users\hdfh\Downloads\fdsa.txt', 'r+') as f:
    lines = f.readlines()
    f.seek(0)
    f.truncate()
    for line in lines:
        line = line.replace(' ', '\t')
        f.write(line)

no me ha hecho exactamente lo que queria, ya que no me ha separado todo pero es un paso. Seguiremos informando

1 respuesta
B

#253

Hombre, te di algo, depúralo un poquillo, que lo hice al vuelo y puede haber particularidades.

B

alguna manera para tontos de crear el ejecutable de todo??
me he bajado py2exe y creo un setup asi

from distutils.core import setup
import py2exe

setup(console = ['ejecutable.py'],
      windows=[{'script':'prueba.ui'}],
      options={
          'py2exe':{
              'includes':['PyQt4','numpy','pylab','matplotlib']
              }
          }
      )

Pero obviamente no va xDD

B

bueno ya consegui crear el ejecutable y todos los archivos con py2exe y haciendo este setup

from distutils.core import setup
import py2exe
import matplotlib

setup(console=['eje.py'],
      data_files=matplotlib.get_py2exe_datafiles(),
      options={
          'py2exe':{
              'packages':['matplotlib'],
              }
          },
      )

me ha creado 2 carpetas y en una de ella esta mi ejecutable que funciona. Ahora si se las paso a alguien no le funciona :S que leches hay que hacer entonces?

1 respuesta
Lolerpopler

#256 No estoy muy puesto en python, pero a veces al crear ejecutables puede pasar que o bien añades alguna dependencia que pueda necesitar al mismo u otros usuarios necesitan dichas dependencias instaladas por su cuenta.

Igual si pones el proceso que has seguido para crear el ejecutable alguien que sepa (no como yo) te puede dar alguna pista

1 respuesta
B

#257 pueeees me baje esto para hacer los ejecutables, que lei que se hacian asi
http://www.py2exe.org/
creo el script que es muy simple y solo usa una libreria

import matplotlib.pyplot as plt

plt.axes([0.1, 0.15, 0.8, 0.75])
plt.plot(range(10))
print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
raw_input()
plt.show()

luego hago el setup que hace falta para crearlo

from distutils.core import setup
import py2exe
import matplotlib

setup(console=['eje.py'],
      data_files=matplotlib.get_py2exe_datafiles(),
      options={
          'py2exe':{
              'packages':['matplotlib'],
              }
          },
      )

cargando la unica libreria que uso.

luego me voy a la consola y a la carpeta donde los tengo, escribo

python setup.py py2exe

(asi pone que se hgace en la web xD)

y se me crean 2 carpetas.

y otra carpeta que se llama build que tiene ams sucarpetas.

Yo le paso todo a alguien pa probar si le va y que va, no le tira

1 respuesta
Lolerpopler

#258 Yo no te puedo ayudar más, porque no he usado eso. Pero mi contribución tonta (que ha todos nos ha pasado) no harás referencia a algún fichero con path absoluto y quizá por eso no funciona a otros? Aunque si es por esto si tu movieras la carpeta a otro lugar tampoco te funcionaría a ti

1 respuesta
B

#259 si muevo la carpeta dist(que es donde esta el ejecutable) a cualquier sitio si me funciona, pero si saco el ejecutable de la carpeta no, aunque esto sera normal xD

B

bueno vuelvo a escribir para decir que ya solucione lo de hacer un .exe, es algo bastaaaaaaaaaaante coñazo pero he conseguio cargar vpython y interfaces a base de trastear. Me voy a ahcer una guia pa mi mismo por si algun dia formateo no estar perdio xD

1 respuesta
E

#261 Si puedes contar un poco qué has hecho te lo agradezco, porque justo necesito pasar un script a exe y estoy perdidisimo

1 respuesta
B

#262 solo es un scrip o lleva alguna rchivo externo adicional?

1 respuesta
E

#263 solo 1, el problema será (imagino) las librerías que voy a usar (las cuales estan instaladas en mi sistema, pero que no estarán en otro sistema)

B

bajate esto: https://github.com/pyinstaller/pyinstaller
extraelo
entra en la consola a la carpeta donde lo has extraio y esta el setup.py
escribe en la consola: python setup.py install
luego entra desde la consola a la carpeta donde tienes el archivo que quieres
escribe en la consola: pyinstaller nombredelarchivo.py

En principio te deberia ir, te va a cargar todas las bibliotecas(para quitar los modulos que no vayas a usar hay que modificar un .txt, cargarlo y es mas lioso) asi que pesara unos cuantos megas.
Te creara 2 carpetas, pues en la que se llama dist busca que debe estar

2 1 respuesta
E

#265 genial, muchas gracia. Lo probaré y te digo

2 respuestas
B

#266 ok, yo asi me ha funcionado. En cambio si me lo bajaba de la propia web de pyinsaller no me iba xD

sPNkKkKkKkKk

#266 Marcate un tuto ya de paso como el del Kernel.

1 respuesta
E

#268 estoy esperando al día que dejes de dar por culo en telegram para mostrarlo. /Kiss

1 respuesta
B

#269 te funciono?