[PIPython] prendere confidenza con il pacchetto ActivePython
Alex Martelli
aleaxit
Ven 19 Nov 2004 15:16:41 CET
On 2004 Feb 05, at 10:45, Antonio wrote:
> Salve a tutti. Sono un novizio in Python e volevo chiedere alcune cose
> per prendere confidenza col tool che mi ho installato nel mio pc.
>
> Ho win 98 ed ho installato ActivePython 2.3.2.
>
> Vorrei che cortesemente mi spiegaste la struttura dell'installazione,
> cioè, vedo che nelle mie sottodirectory ci sono una marea di file
> *.py, *.pyc, *.pyd, *.h, *.pyw ecc...
>
> DOMANDA 1- Che sono i file *.pyc, *.pyd, *.pyw ?
>
.pyc: bytecode compilato senza ottimizzazione
.pyd: modulo di estensione a Python scritto in C, compilato e linkato,
praticamente una DLL fatta apposta perche` Python la carichi
.pyw: sorgenti di un programma principale Python da eseguirsi con
pythonw.exe, cioe` SENZA mostrare la finestra DOS (mentre python.exe la
mostrerebbe), tipicamente dunque con GUI
> C:\Python23\python.exe
> C:\Python23\pythonw.exe
> C:\Python23\w9xpopen.exe
>
> DOMANDA 2: Dei tre exe, il primo è avvia Python in una semplice shell.
> Gli altri 2?
>
python.exe senza argomenti ti da` una sessione interattiva in modo
testo; se gli passi come argomento un programma principale Python lo
esegue mostrando la finestra DOS. pythonw.exe e` fatto per passargli
come argomento un programma principale python: lo esegue senza mostrare
la finestra DOS.
w9xpopen.exe serve esclusivamente ad aggirare i bachi che win95 e win98
avevano sulla comunicazione interprocesso via pipe (quindi a far
funzionare os.popen nella libreria standard Python anche su questi
sciagurati e bacatissimi ambienti).
>
> Come ambienti ActivePython mette a disposizione (o qualcun altro oltre
> questi?):
>
> PythonWin IDE C:\Python23\Lib\site-packages\Pythonwin\pythonwin.exe
> Idle C:\Python23\Lib\idlelib\idle.pyw
>
> DOMANDA 3: Che differenza c'è tra i due?
IDLE e` l'IDE standard Python disponibile in tutte le piattaforme, usa
per la GUI Tkinter. PythonWin e` solo Windows, e usa per la GUI le MFC
in una finestra MDI. Potenza grosso modo equivalente. Una volta IDLE
era piuttosto limitato, ma oggi e` molto cresciuto e personalmente lo
preferisco, ma se uno e` un patito sfegatato dell'ormai datatissimo
look MDI (PythonWin non viene aggiornata da lunga pezza...) ha
un'alternativa.
>
> DOMANDA 4: In diverse sottodirectory vedo che ci sono dei file *.py il
> cui nome inizia per test_*, sono i tipici file di esempio che si
> trovano in ogni programma per farne capire il funzionamento (in questo
> caso le possibilità del linguaggio)?
No, sono file contenenti dei test (unit test) che, eseguiti,
garantiscono la buona istallazione di ogni parte del package. Gli
esempi dovrebbero essere in una directory Demo e non credo che faccia
parte della distribuzione Active (occorre prendere invece, anzi in
addizione, il pacchetto dei _sorgenti_ di Python per essere sicuri di
avere TUTTI gli esempi, sia in Demo sia in Tools).
>
> DOMANDA 5: nella cartella C:\Python23\include\ ci sono dei file *.h,
> sarebbero i moduli C per velocizzare Python?
Sono gli header file che ti permettono di scrivere moduli C che
collaboreranno poi con Python come sue estensioni.
>
> DOMANDA 6: le librerie di Python hanno estensione (*.dll, *.pyd nella
> cartella DLLs) *.py? Se così
Le estensioni di Python scritte in C, compilate e linkate, hanno
estensione .pyd (preferibilmente, per identificarle) o .dll (piu`
generica
> fosse, non posso avviare un file *.py di quelli contenuti in Lib come
> se fosse codice di una
Un file .py inteso come modulo da caricare PUO` permetterti di
eseguirlo anche come programma principale (allora eseguira` tipicamente
i test che lo riguardano) con l'idioma del test su __name__
> applicazione, giusto? Qualcuno può informarmi sul contenuto di
> quelcuna delle sottodirectory di Lib? Ad occhio sembrano interessanti
> cygwinccompiler.py, bcppcompiler.py, ccompiler.py, emxccompiler.py,
> msvccompiler.py, mwerkscompiler.py, unixccompiler.py : sono i diversi
> compilatori di cui dispone ActivePython? Se così fosse, come scelgo
> dall'ambiente il compilatore?
Sono i diversi compilatori supportati da distutils quando richiedi di
compilare e linkare sorgenti C di un'estensione per Python. Per usare
compilatori diversi da quello Microsoft, oltre ovviamente ad essterteli
istallati, devi tipicamente fare operazioni di preparazione perche`
detti altri compilatori non possono tipicamente usare delle DLL ecc
scritte con/per quelli Microsoft senza passate di preparazione che
dipendono dal compilatore. L'ambiente non c'entra, distutils si esegue
invece da linea comandi.
>
> C:\Python23\Lib\compiler se non mi inganno sembra contenere le
> direttive di sintassi, identazione...
E` un pacchetto alternativo, sperimentale, per compilare Python usando
Python invece di C. Interessa solo a utenti molto avanzati in vena di
sperimentazioni.
>
> DOMANDA 7: con ActivePython mi installo contemporaneamente anche delle
> librerie per la scrittura di programmi GUI. La C:\Python23\Lib\lib-tk
> è il supporto Tkinter? Ho anche qualche altra libreria per le GUI che
> ancora ignoro?
PythonWin, che supporta le MFC (ovviamente se scrivi GUI usando quelle
andranno solo su Windows).
>
> DOMANDA 8: se potete mi aggiungete qualcosina su C:\Python23\tcl\ e
> C:\Python23\Tools\ ?
>
L'istallazione di Tcl (e Tk) e` indispensabile per usare Tkinter, che
su quelli si appoggia. Quali dei tools standard di Python ActiveState
distribuisca, non so.
>
> Chiedo scusa a tutti per le molte domande forse poco intelligenti, ma
> per me credo sia fondamentale sapere bene cosa ho sotto le mani, in
> modo da essere più efficiente nel momento in cui metto in pratica ciò
> che imparo.
> Sarei felice di ricevere risposta anche ad una sola delle mie domande;
> mi rendo conto che per la stessa persona è scocciante rispondere a
> tutte, ma una risposta per uno non fa male a nessuno... :-)
Per carita`, nessun problema.
Alex
More information about the Python
mailing list