Sto usando Enthought EPD-Free 7.3-1 su una piccola funzione, e quando si taglia/incolla in una sessione interattiva (PyLab) ed eseguirla, ci vuole meno di un secondo. Quando eseguo lo stesso codice dalla riga di comando "python probtest.py
", sono necessari più di 16 secondi.shell interattiva python 16 volte più veloce della riga di comando - cosa c'è che non va?
Ho confermato che entrambi stanno usando lo stesso ambiente Python. Forse correlato (forse no) ma nella directory con il file .py
, non c'è un file .pyc
... nessuno degli script Python che ho eseguito di recente ha associato i file .pyc. Ho controllato i permessi di lettura/scrittura per la cartella, usato "permessi di riparazione" (Mac OSX-Lion) e disinstallato/reinstallato EPD_Free python, ma senza fortuna.
Sono in perdita per quello che potrebbe essere la causa. Il codice che sto usando (semplice test del numero x di dadi, alla ricerca di Sixes almeno 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
Come trovi il motivo per cui la linea di comando python è molto più lento? Grazie in anticipo.
Grazie! Questo era esattamente il problema! Grazie mille, mi hai salvato la sanità mentale! –
Nessun problema. La settimana scorsa ho dovuto lottare con un bug perché ero pigro e ha fatto "da numpy import *", che ha sostituito il builtin 'any' con' numpy.any', dando un comportamento diverso quasi impossibile da eseguire il debug guardando il codice stesso. Quindi era nella mia mente .. – DSM