Estoy usando Enthought EPD-Free 7.3-1 en una función pequeña, y cuando corto/pego en una sesión interactiva (PyLab) y lo ejecuto, toma menos de un segundo. Cuando ejecuto el mismo código desde la línea de comando "python probtest.py
" toma más de 16 segundos.shell interactivo python 16 veces más rápido que la línea de comandos: ¿qué ocurre?
He confirmado que ambos están utilizando el mismo entorno de python. Tal vez relacionado (tal vez no), pero en el directorio con el archivo .py
, no hay un archivo .pyc
... ninguno de los scripts de Python que he hecho recientemente tiene archivos .pyc asociados. Revisé los permisos de lectura/escritura para la carpeta, utilicé "permisos de reparación" (Mac OSX-Lion) y desinstalé/reinstalé EPD_Free python, pero no tuve suerte.
No sé cuál podría ser la causa. El código que estoy usando (simple prueba de x número de dados, en busca de al menos seises y):
import numpy as np
import sys
def runTest(numDice, numSixes, numThrows = 10000):
nSuccess = 0
for i in range(numThrows):
dList = np.random.randint(1,7,numDice)
if sum(dList==6) >= numSixes:
nSuccess += 1
return float(nSuccess)/numThrows
print runTest(900,150,5000)
print sys.version
Alguna idea acerca de por qué la pitón línea de comandos es mucho más lento? Gracias por adelantado.
¡Gracias! ¡Ese fue exactamente el problema! ¡Muchas gracias, has salvado mi cordura! –
Sin preocupaciones. La semana pasada tuve que lidiar con un error porque era flojo e hice 'from numpy import *', que reemplazó el compilado 'any' con' numpy.any', lo que hace que un comportamiento diferente sea casi imposible de depurar al mirar el código en sí. Así que estaba en mi mente ... – DSM