Il giorno 15 novembre 2010 20:13, Manlio Perillo <manlio.peri...@gmail.com>ha scritto:
> Se embeddi l'interprete, ti basta settare il flag Py_NoSiteFlag. > Ah, beh tanto meglio :) > Scusa, ma nel tuo caso chiami l'interprete dalla riga di comando, o è > incluso nella tua applicazione? > Nel progetto di cui alla discussione precedente includo l'interprete nel programma C, però visto che tale thread è stato cosi ricco di spunti ho pensato di provare a vedermi un po' il meccanismo di import di CPython. Peccato che questa funzione non sia personalizzabile. > > Io l'ho modificata per caricare, assieme a zipimport, anche il modulo signedimporter (quello tuo da paste, anche se incompleto mi serviva per test. Per maggiore sicurezza, però, anzichè usare il comportamento standard di python con zipimport,(ovvero, che se non riesce a caricare il modulo o ad ottenere un riferimento alla funzione/classe che gestisce l'import scrive sullo stderr solo in caso di PYTHONVERBOSE) ho preferito far stampare l'errore ed interrompere l'esecuzione dell'interprete (scelta non necessariamente definitiva). Ho notato comunque che zipimport viene registrato non in sys.meta_path ma in sys.path_hooks. Stando alla PEP302 mi pare di aver capito che la differenza è che sys.meta_path viene controllato *prima* della creazione di sys.path. E poi in meta_path si parla di importer mentre in path_hooks di oggetto callable. :S Per ora funziona tutto, cioè non ci sono errori a runtime anche se giustamente, il modulo signedimporter non fà nulla e poi dovrò aggiungere un controllo integrato per la validità dello stesso .py (magari poi lo rifarò in C se conviene). Unico problema trovato in fase di compilazione del sorgente è che il modulo hashlib crea un errore cercando di importare _md5, anche se, onestamente, non capisco perchè in fase di compilazione tenti di eseguire il modulo signedimporter (che importa hashlib). > Ti consiglio anche di chiedere sul newsgroup inglese. > > Uhm, gli darò un'occhiata. Sicuro che non mi mangiano se parlo di modificare la base di python? =E > Ciao Manlio > Ciao ciao!
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python