shortcut furbi per python in windows
« il: Aprile 08, 2017, 14:42 »
Per la serie "siamo windows ma non siamo niubbi", ecco un trucchetto che non ho scritto nella mia guida su python in windows (link in firma).

Il problema è: come avviare uno script python, se avete installate più versioni di python.

Nella mia guida, naturalmente, specifico che gli script si dovrebbero avviare solo dalla shell, e mai facendoci sopra doppio clic (anzi, bisognerebbe associare il doppio clic con l'editor, piuttosto). E questa è la risposta corretta, in generale.

Tuttavia, se non avete sempre la shell sottomano e sentite il bisogno di un modo più "grafico" per avviare script python, potete ricorrere alla tecnica dei collegamenti.
Create un collegamento (sul desktop, per esempio) che ha come target py -2 e chiamatelo "Python 2".
Poi createne un altro che ha come target py -3 e chiamatelo "Python 3".
Adesso, se trascinate il file di uno script Python su uno di questi collegamenti, verrà avviato con l'interprete Python desiderato.

Ma non è finita.
La cosa veramente cool, è creare questi collegamenti non banalmente sul desktop, ma nella directory "sendto" (ovvero c:/users/.../AppData/Roaming/Microsoft/Windows/SendTo, o più semplicemente scrivete shell:sendto nella barra dell'indirizzo di qualsiasi finestra aperta).
Un collegamento creato in questa directory finisce nel menu contestuale "Invia a...".
Di conseguenza, potete cliccare col pulsante destro su un modulo Python, scegliere "Invia a -> Python 3" per esempio, ed eseguire il modulo con Python3.

Molto carino, no?
Attenzione però: non potete controllare in questo modo la directory di lavoro, che resterà inesorabilmente bloccata su c:/windows. Quindi, se il vostro script è sensibile alla directory corrente (cosa che comunque non è bene fare), allora non potete avviarlo in questo modo.
E ovviamente non potete avere tutti i consueti benefici della shell... passare argomenti aggiuntivi, usare i virtual environments, vedere lo stdout/err, eccetera. Insomma non è un modo per sostituire la shell, ma può essere ragionevolmente conveniente in molti casi.
« Ultima modifica: Aprile 08, 2017, 14:47 da RicPol »