Esthergarvi

Esthergarvi

PYTHON PER QBITTORRENT SCARICA

Posted on Author Tojora Posted in Libri


    Contents
  1. Iscrivi alla newsletter!
  2. Il motore di ricerca BitTorrent personale e inaffondabile
  3. Scarica il file da Python S3 trovato
  4. Web & Digital

Scarica Python. Le versioni correnti di Python sono Python e Python Python Installer EXE per Windows x (per AMD64/EM64T/x Python, download gratis. Python Un linguaggio di programmazione per livelli eccellenti di integrazione del sistema. Insieme ad altri principali linguaggi di. Download Python Linguaggio di programmazione dinamico orientato agli oggetti. Python è un linguaggio di programmazione dinamico e interattivo. Per attivare il motore di ricerca di qBittorrent, un PC Windows, accetta l' installazione di Python: un.

Nome: python per qbittorrent
Formato:Fichier D’archive
Sistemi operativi: iOS. Android. Windows XP/7/10. MacOS.
Licenza:Solo per uso personale
Dimensione del file: 12.49 MB

Video che mostra come scaricare e installare Python. X Solo per utenti che hanno regolare licenza ed usano tecnologie assistive , oppure di scaricare il sistema operativo e di scegliere se salvarlo.

Limewire è decisamente veloce ma poco fornito specie per i film e giochi e poi ti arriva sul PC una. NET virtual machines. Una frase che si presta a molti malintesi, ma che ha un significato ben specifico.

Ho windows Xp sul muletto. Ultima modifica di waikiki : alle Originariamente inviato da waikiki. Dice che almeno win vista è richiesto per l'installazione. Non c'è un altro link scusami? OPPO presenta la nuova serie Reno2: 4 fotocamere OnePlus 7T Pro: piccoli miglioramenti per un pro Xiaomi Mi 9T Pro: difficile dirgli di no a meno Oggi su Amazon sono 13 le offerte imperd Lo sparatutto gratuito Krunker fra i mig Tokyo l'esoscheletro dedicato agli Google Pixel 4, niente cuffie o adattato Tesla mostra il suo Crash Lab: ecco il l Piaggio Gita, il robot ''portaborse'' sa Daydream VR, interesse scarso: Google ch Football Manager rivelata la data La foto della marmotta spaventata vince Nest Wifi: Google Wifi ha un successore, League of Legends: Wild Rift porta il fa Ora sono le: Served by www3v.

Oggi analizzeremo una delle proposte più interessanti sul Un duplice prodotto con caratteristiche da medio gamma ma che guardano più ai contenuti Analizziamone dunque le funzionalità nel dettaglio.

Il file di installazione di qBittorrent per Windows pesa poco più di 16 MB e la procedura si conclude in pochi secondi, senza troppi fronzoli. Una volta avviato ci accoglie un popup che sottolinea la nostra responsabilità sul materiale che condividiamo per poi presentare la schermata principale.

La prima sensazione è quella di familiarità visto che la schermata è organizzata in modo simile a quella qualsiasi altro client P2P. In alto troviamo la barra dei menu e i pulsanti per aggiungere o cancellare un file torrent mentre subito sotto troviamo due tab, Transfer e Search, che consentono, rispettivamente, di gestire i file in download o di ricercare i contenuti.

Il tab Transfer è il cuore pulsante di qBittorrent ma anche di qualsiasi altro client P2P. Questa è infatti la schermata che elenca i file attualmente in download. Nella fattispecie è presente un grossa griglia in cui qBittorrent elenca i download e, per ognuno di essi, ne indica il nome, la dimensione, lo stato, i seed, i peers, la velocità attuale di download ed altre informazioni aggiuntive. La sezione Trackers mostra i trackers, detti anche server traccia, del file torrent selezionato mentre la sezione Peers mostra i singoli utenti che stanno scaricando lo stesso file.

In generale, non è la cosa giusta da fare. Ci soffermiamo ora brevemente su come bisognerebbe organizzare un progetto Python ovvero, fisicamente, la directory che contiene tutti i file relativi al progetto. Ci sono molte guide, template, coding styles, suggerimenti di vario tipo in merito, e molti dettagli dipendono dalle abitudini di ciascuno, dai tool di sviluppo utilizzati, etc.

Inoltre, i framework complessi come Django hanno le loro peculiariarità e le loro raccomandazioni specifiche. In primo luogo, come già detto ogni progetto dovrebbe avere una sua directory, che avrà il nome del progetto: deve essere un nome corto ma significativo quindi non project , naturalmente! Dentro la directory-base c'è un'altra directory con lo stesso nome , dentro cui mettete i moduli Python che effettivamente compongono il progetto.

Gli "unit test" e altri tipi di test in Python sono praticamente un obbligo per ogni progetto serio: se non sapete nulla sull'argomento, potete iniziare dalla documentazione standard relativa.

Iscrivi alla newsletter!

Documentare bene il codice è un punto d'onore di ogni sviluppatore Python: nessuno vorrà avere a che fare con il vostro codice, se non è documentato. In teoria, siete liberi di decidere il formato, le strategie e gli strumenti per la vostra documentazione.

Sphinx è un tool che genera diversi tipi di output html, latex, etc. Un file conf. Naturalmente non siete obbligati a usare Sphinx per la documentazione. La directory-base project contiene inoltre un numero variabile di file di meta-informazioni sul progetto.

Il README contiene le informazioni essenziali, e dovrebbe essere scritto in Inglese o come minimo avere una introduzione corta in Inglese all'inizio, se proprio non potete rinunciare all'Italiano. Ci potrebbe poi essere un numero variabile di file eventualmente auto-generati necessari ai diversi tool di sviluppo che utilizzate.

Per esempio, se usate Git per il controllo di versione, allora avrete una directory nascosta. Anche il vostro editor potrebbe appoggiarsi ad alcuni file nascosti nella directory-base per leggere delle impostazioni di configurazione. Abbiamo già imparato a conoscere requirements. Infine setup.

Per saperne di più su setup. Assegnare un numero di versione a un progetto Python è importante, e occorre saperlo fare bene. Se distribuite il vostro progetto su PyPI, ogni volta che caricate degli aggiornamenti il numero di versione deve cambiare. Tuttavia, deve essere ben chiaro a quali commit corrisponde un nuovo numero di versione di solito, questo si ottiene taggando i commit in modo che sia possibile clonare una versione ben precisa. Il mondo Python ha adottato da tempo uno standard preciso per i numeri di versione, descritto nel dettaglio nella PEP Detto in breve, si tratta del popolare schema "a tre numeri": un numero di "major version", uno di "minor version" e uno di "micro version" o "bugfix release".

Per convenzione, dovreste sempre incrementare il primo numero "major version" quando introducete delle modifiche non retrocompatibili con il codice precedente.

La PEP regola anche l'utilizzo di codici per indicare versioni alfa, beta, candidate, pre- e post- release, etc. È utile pubblicare l'elenco di tutti i cambiamenti apportati tra una versione e la successiva. Il manuale di stile ufficiale di Python è la PEP 8 che bisogna leggere e conoscere a fondo. I programmatori Python sono molto sensibili sull'argomento, e se volete far vedere il vostro codice è meglio seguire sempre la PEP 8.

Molti grandi progetti hanno inoltre un loro manuale di stile interno: se decidete di collaborare con questi, è ovviamente necessario conformarsi. Il processo di rilevazione automatica dei potenziali errori nel vostro codice e dei potenziali difetti di stile si chiama linting.

Esistono diversi linter che fanno un ottimo lavoro nel segnalarvi dove il vostro codice non è conforme alla PEP 8. Il più semplice è Pep8 , ma ci sono opzioni più evolute come PyLint.

Sono pacchetti che si installano normalmente con Pip, e si possono usare dalla riga di comando della shell. Parleremo più diffusamente degli editor e della loro configurazione tra poco.

Come abbiamo già detto, il vostro linter appartiene a quella categoria di pacchetti "ausiliari" che non è sbagliato installare globalmente, e rendere eventualmente accessibili ai venv dei progetti con l'opzione --system-site-packages al momento di creare il venv.

Dopo aver capito, almeno a grandi linee, come funzionano gli import in Python, dobbiamo tornare sull'argomento "doppio clic". Abbiamo già detto che gli script Python si invocano dalla shell e non facendo doppio clic sull'icona del file corrispondente - e lo confermiamo qui ancora una volta. Tuttavia, il desiderio di trattare uno script Python come di solito si "avvia un programma" è comprensibile: ripetiamo ancora!

Il motore di ricerca BitTorrent personale e inaffondabile

Ci sono strumenti che vi consentono di generare degli eseguibili veri e propri, pronti per la distribuzione, che naturalmente si possono avviare con il doppio clic. Ne accenniamo più in là. Se volete il doppio clic, allora pacchettizzate il vostro script. E tuttavia In questo caso, tuttavia, potreste incontrare due famiglie di problemi: quelli legati alla directory di lavoro e alle path relative, se il vostro script deve accedere a risorse esterne come file o database; e quelli legati alle differenti versioni di Python e ai venv necessari.

Anche se non avete ancora cominciato a studiare Python, il significato del codice dovrebbe essere chiaro: proviamo a importare un modulo foo. Notate che identifichiamo la risorsa usando una path relativa foo.

Adesso facciamo qualche esperimento. Come vedete, la directory corrente della shell al momento di invocare lo script viene passata a Python. Non ci sono problemi per l' import di foo. Non ci sono problemi neppure per l'apertura di foo. In questo caso l' import va ancora a buon fine come prima, ma l'apertura del file è invece compromessa.

In effetti, occorre sempre ricordarsi che gli import sono relativi alla posizione dello script eseguito, ma le path delle risorse esterne sono relative alla directory corrente passata a Python al momento dell'invocazione.

Infine, possiamo verificare che anche il doppio clic su un collegamento soft link allo script funziona come cliccare sul file originale: ovvero, la directory corrente resta quella del file originale, non quella del link. Talvota capita di voler invocare uno script Python attraverso un batch file un file con estensione. Se adesso mettete questo file in una directory qualsiasi per esempio il desktop e ci fate doppio clic sopra, vedrete che l'apertura del file fallisce, perché la directory corrente non è quella giusta.

In generale, lo script Python invocato nel modo "giusto" dovrebbe passare a Python la directory corrente del file dello script. Di conseguenza, ogni volta che volete accedere a una risorsa esterna un file, un database Una soluzione sarebbe identificare le risorse esterne solo per mezzo di path assolute , ma chiaramente questo non va bene, perché sacrifica completamente la portabilità del vostro codice.

Modificate main.

Qui, os. Se adesso riprovate tutti gli esperimenti fatti fin qui, noterete che la directory corrente resta sempre quella del file, anche se cercate di passare qualcos'altro dalla shell, o da un file batch, o con le impostazioni di un collegamento. Se volete usare questa tecnica, vi conviene impostare la directory corrente molto presto nel vostro script: sicuramente, prima di accedere a qualsiasi risorsa esterna.

Un altro ordine di problemi capita quando avete due o più versioni di Python installate, o magari quando il vostro script deve essere eseguito in un venv. In questi casi, naturalmente fare doppio clic lascia a Windows la scelta dell'eseguibile Python da invocare, e non sempre le cose andranno lisce.

Se avete conservato quel venv e in caso contrario, basta ricrerlo , potete verificare subito il problema. Modificate il nostro script main. Se adesso eseguite lo script con il doppio clic, vedrete che Arrow non viene importato. Il motivo è semplice: Windows esegue lo script con il Python "di sistema", che non ha Arrow installato. Per fare in modo che Windows selezioni l'interprete Python corretto ovvero quello del venv quando fate doppio clic sullo script, avete diverse opzioni.

In primo luogo, potete senz'altro attivare il venv da una shell prima di fare doppio clic. Ma si capisce che questo non avrebbe molto senso, visto che state appunto cercando di evitare di usare la shell.

In secondo luogo, potete impostare la shebang dello script indirizzandola verso l'interprete corretto:. Questo funziona, ma non è una buona idea: legate il vostro codice a dettagli della configurazione specifica del vostro computer, e sacrificate la portabilità.

Terzo, potete usare un collegamento. Create un collegamento al vostro script main. Accertatevi anche che la casella "Da:" contenga la path della directory corrente che volete passare a Python. Adesso, se fate doppio clic sul collegamento, Windows eseguirà lo script con l'interprete giusto. Questa soluzione è buona: non dovete toccare il vostro codice, e i dettagli di configurazione restano specificati in un collegamento che potete modificare separatamente.

Usare un file batch è un'altra buona soluzione, che vi consente di separare dal codice Python i dettagli della vostra configurazione specifica.

Il vantaggio di un file batch rispetto a un semplice collegamento "preparato", è che vi permette all'occorrenza di fare molte cose in più prima di avviare lo script Python. Per esempio potete impostare delle variabili d'ambiente, creare file e directory di lavoro, e in generale preparare l'esecuzione dello script senza inquinare il codice Python con dettagli specifici per la vostra configurazione. Talvolta il vostro script produce un output che desiderate vedere nella shell: per esempio, in seguito a un print.

Se invocate lo script dalla shell, questa resta aperta durante l'esecuzione. Ma se fate doppio clic, tipicamente la shell la "finestrella nera", per capirci si apre, esegue lo script, mostra l'output e poi si chiude: tutto questo avviene troppo rapidamente per permettervi di capirci qualcosa. La soluzione standard è quella che abbiamo già adottato negli esempi precedenti: fare in modo che lo script termini con una richiesta di input per l'utente.

In questo modo lo script si blocca e la shell non si chiude! In questo caso, Python si arresta inaspettatamente dopo aver pubblicato sullo stream dello "standard error" il traceback dell'eccezione incontrata: naturalmente, lo "standard error" è diretto verso la shell, di solito.

Questo significa che avete lo stesso problema di prima. Se avviate lo script dalla shell, tutto va bene: Python si arresta, ma la shell resta aperta e voi potete esaminare il traceback dell'errore incontrato e capire il problema.

Ma se fate doppio clic, la shell si chiude immediatamente e voi restate senza informazioni. Qui Python pubblicherà il risultato della prima istruzione 4 nello "standard output" la shell.

Infine terminerà l'esecuzione dello script prematuramente, prima di arrivare all' input finale. Certo, la verità è che, almeno in un software destinato all'utente finale, tutte le eccezioni dovrebbero essere previste e gestite. Un'eccezione non gestita è un baco. Ma appunto, anche i bachi succedono, e ci serve lo stacktrace dell'eccezione per poterli correggere.

In fase di sviluppo di solito questo non è un problema perché voi avviate sempre lo script dalla shell. La cosa peggiore è che un errore di questo tipo potrebbe capitare non solo all'interno del codice Python vero e proprio, ma anche a causa di una gestione sbagliata dell'ambiente di esecuzione. Per esempio, se facendo doppio clic avviate lo script con l'interprete sbagliato, Python potrebbe incontrare immediatamente degli ImportError se magari non siete nel venv giusto , o addirittura dei SyntaxError se state eseguendo lo script con una versione sbagliata di Python.

La frustrazione cresce perché talvolta invece, eseguendo lo script dalla shell, tutto funziona perché la shell è nel venv giusto, o seleziona la versione giusta di Python.

Ci sono diverse possibilità per risolvere questi problemi. Una idea valida, anche se un po' rozza, è re-direzionare lo stream dello "standard error" verso un file di log, invece che nella shell.

In caso di errore, in seguito potete aprire il file e ispezionare lo stacktrace:. Questo non è del tutto a prova di bomba, ma basta e avanza per i casi più comuni. In particolare, vi salva dalle eccezioni non gestite come lo ZeroDivisionError qui sopra e anche dagli ImportError iniziali dovuti all'interprete sbagliato. Naturalmente dovreste re-direzionare lo "standard error" molto presto nel vostro codice, e senz'altro prima del primo import che potrebbe fallire. Possono esserci situazioni particolari in cui Python si interrompe prima di essere riuscito a completare la scrittura dello stracktrace nel file, e situazioni in cui il file stesso risulta mancante, corrotto, etc.

Una possibilità analoga, ma più raffinata, è ricorrere a sys. Potete sovrascriverla e fare quello che desiderate in questa fase: in questo esempio noi scriviamo lo stacktrace nella shell e, invece di uscire immediatamente, blocchiamo lo script con il trucco che già conosciamo:. Notate che, per la stessa ragione di prima, questo meccanismo non vi difende dai SyntaxError né dagli "hard crash" dell'interprete Python, e comunque andrebbe inserito molto in alto nel vostro codice.

Usare sys. Nella vostra funzione potete usare un sistema di logging per conservare lo stacktrace dell'eccezione, emettere un messaggio di avviso per l'utente, prendervi il tempo chiudere le risorse rimaste aperte connessioni al database Fate solo attenzione, naturalmente, che queste operazioni non inneschino a loro volta altre eccezioni.

Infine, ricordate che tutti questi rimedi valgono solo a partire dal momento in cui il controllo passa all'interprete Python. Se fate qualche errore prima , per esempio nel file batch che avvia lo script, oppure se sbagliate a scrivere la path dell'interprete nelle impostazioni del collegamento Gli strumenti di lavoro del programmatore sono infiniti, e ciascuno nel tempo sviluppa le sue preferenze e le sue antipatie.

In questa sezione elenchiamo solo alcuni strumenti indispensabili, o quasi. Arrivati a questo punto, avrete ormai notato che la shell è uno strumento indispensabile e onnipresente per programmare e non solo in Python.

Avrete anche notato che la shell di Windows cmd. Non potete fare a meno di un "console emulator", e ConEmu è il migliore in circolazione per Windows. ConEmu è un software complesso ma a voi basterà conoscere le basi. ConEmu è un manager in grado di gestire diverse shell contemporaneamente cmd.

L'installer di Cmder, volendo, comprende anche Git for Windows: è tuttavia preferibile installare Git separatamente, come vediamo qui di seguito. Da qualche anno GitHub è diventato un modo molto popolare di pubblicare il proprio codice, condividerlo, cercare collaborazioni, farsi conoscere. Anche se non avete intenzione di aprire un account su GitHub, probabilmente vi conviene comunque usare un sistema di controllo di versione VCS per i vostri progetti, e Git è ormai di gran lunga il più popolare.

Non è questa la sede per descrivere che cosa è e a cosa serve un VCS: la documentazione di Git fa un buon lavoro anche a spiegare la filosofia e le strategie d'uso più comuni. Per installare Git su Windows, avete due possibilità.

È un software molto piacevole e intuitivo da usare, ma non è la nostra prima scelta. Dopo tutto, Git è nato come uno strumento di lavoro snello, che si governa con la shell: i comandi più comuni, poi, sono davvero semplici da usare.

Inoltre molti editor ormai offrono qualche tipo di integrazione con Git, e quindi userete Git quasi sempre dal vostro editor. Il nostro consiglio è invece di installare Git per Windows uno strumento più snello che comprende, oltre a Git, la shell Git Bash un porting della nota shell Unix Bash , l'interfaccia grafica GitGui abbastanza comoda da usare, se proprio volete restare lontani dalla shell e il "commit viewer" GitK utile per avere una rappresentazione grafica dell'albero dei commit, per esempio.

Al momento di installare Git per Windows, potete scegliere tra le numerose opzioni quelle che vi sembrano più opportune. Vi consigliamo in particolare di selezionare "Use Git from Git Bash only", dal momento che Git Bash è una shell molto più completa del solito cmd. Quando poi si arriva alla scelta della console, è indifferente selezionare "Use Windows' default console window", oppure scegliere MinTTY: la verità è che comunque useremo Git Bash all'interno di ConEmu che abbiamo già installato, senza ricorrere né a cmd.

Infine, ricordatevi di selezionare "Enable Git Credential Manager" specialmente se avete intenzione di usare Git per collegarvi a un server come GitHub. Completata l'installazione, potete usare GitGui per le operazioni sulle vostre repository Git, se preferite. Ma probabilmente la cosa più rapida è lavorare con Git Bash, con qualche occasionale sguardo a GitK. Vi conviene usare Git Bash all'interno di ConEmu, chiaramente.

Notate che è importante selezionare il corretto eseguibile Il prompt master vi indicherà a questo punto che siete nel branch di default master. Giocare con Git dalla shell a questo punto è facile.

Provate per esempio:. Se invocate gitk mentre siete in una repository, aprite l'interfaccia grafica di GitK e potete vedere i vostri commit naturalmente potete usare anche git log per questo. Non c'è niente di male nell'invocare l'interprete Python direttamente nella vostra shell, come abbiamo fatto finora: è il modo più rapido, e spesso è più che sufficiente. Tuttavia per le sessioni più lunghe e impegnative desiderate avere un'interfaccia migliore.

Ma forse a questo punto preferite usare la shell:. In questo modo potete avviare le diverse IDLE "globali" con py -2 -m idlelib , py -3 -m idlelib etc. Un'altra opzione è costituita dal vostro editor.

Molti editor evoluti offrono la possibilità di integrare una REPL per vari linguaggi di programmazione, tra cui naturalmente anche la shell di Python. In genere potete configurare la shell integrata per lavorare globalmente, oppure all'interno di un venv.

Tuttavia in questi anni si è progressivamente affermata una shell molto evoluta e ricca di opzioni: gli Jupyter Notebook in precedenza noti come IPython Notebook sono lo stato dell'arte, al punto che è riduttivo considerli solo delle shell.

Jupyter è piuttosto un ambiente di sviluppo IDE interattivo, rivolto soprattutto alla comunità scientifica e alle applicazioni di data visualisation. Il sito è ricco di esempi e la documentazione è molto completa. Potete provare i notebook nel vostro browser senza installare nulla, se volete farvi un'idea. Il sito ufficiale raccomanda di usare i notebook Jupyter installando Anaconda , una distribuzione di Python dedicata soprattutto all'ambito scientifico che comprende moltissimi pacchetti pre-installati tra cui, appunto, anche Jupyter.

Ma non è assolutamente necessario installare Anaconda per usare i notebook Jupyter. Siccome Jupyter ha bisogno di moltissimi altri pacchetti, è consigliabile installarlo in un venv appositamente creato, per poterlo valutare senza impegno.

Se vi piace, potete successivamente installarlo nel Python di sistema. Una volta installato Jupyter, avete due opzioni principali per avviarlo. Potete invocare dalla shell jupyter console per aprire un notebook con l'interfaccia testuale direttamente nella shell. Oppure potete invocare jupyter notebook per aprire un notebook nel vostro browser, e sfruttare tutte le opzioni che vi offre l'interfaccia grafica.

Le possibilità dei notebook Jupyter sono impressionanti: leggete la documentazione online per farvi un'idea. Dovete imparare a usare un editor "intelligente" di file di testo. La scelta di un editor dipende da mille fattori, è sempre molto personale, e la rete è piena di discussioni interminabili su qual è il "miglior editor".

Ci limitiamo qui ad alcune considerazioni e suggerimenti molto generici. In primo luogo, è sempre più difficile distinguere tra un " IDE " e un " editor ".

In teoria un IDE è un ambiente integrato che comprende, oltre all'editor vero e proprio, molti altri strumenti debugger, compiler, code completion, integrazione con vari framework, version control system, e altro ancora ; un editor d'altra parte è "solo" specializzato nella scrittura del codice, e offre funzionalità più mirate al codice in senso stretto, e non allo sviluppo di applicazioni in senso più ampio.

Di contro, è possibile disattivare molte funzionalità non necessarie di un IDE, fino a usarlo quasi come un editor. È vero comunque che un IDE tende a "imporsi di più" sul lavoro che fate: per sfruttarlo al meglio dovete accettare un po' di sovrastruttura necessaria. Un editor, per contro, di solito è più snello e non impone nessun particolare modo di lavorare. Ma tutte le differenze sono opinabili, e per ogni generalizzazione ci sono sempre dieci contro-esempi.

Scegliete con calma l'editor o l'IDE che si adatta di più al vostro modo di lavorare e al vostro gusto. In primo luogo, il già menzionato IDLE comprende oltre alla shell interattiva anche un editor. In genere non sono molti quelli che continuano a usare IDLE dopo i primi esercizi. IDLE è inteso come ambiente di lavoro provvisorio e spartano per chi, dopo aver installato Python, desidera mettersi subito al lavoro. Anche se all'inizio potrebbe piacervi proprio per la sua semplicità, probabilmente è meglio investire fin da subito in un editor più completo, in grado di supportarvi mentre progredite nella vostra conoscenza di Python.

A parte IDLE, il primo editor che dovreste prendere in considerazione è Vim : è un editor concepito per girare direttamente nella shell, senza interfaccia grafica. È estremamente potente e flessibile, ed è l'editor preferito da molte "star" della programmazione.

Ha una vasta e vocale "fan base" pronta a sostenere che sia il miglior editor possibile. La verità è che è anche un editor difficile da imparare e difficile da configurare. Vim è fatto per essere usato nella shell, senza il mouse, i menu a tendina e le altre piacevolezze grafiche a cui siamo abituati. Se il vostro lavoro si svolge tutto o quasi nel terminale, allora probabilmente Vim è davvero il vostro editor ma potreste voler dare un'occhiata anche a Emacs prima di fare una scelta definitiva.

Tuttavia, anche se Vim non è il vostro editor preferito, è comunque obbligatorio imparare e memorizzare almeno i pochi comandi fondamentali che vi permettono di aprire un file, apportare delle modifiche, salvare e uscire. Oppure, quando vi collegate a un server remoto con una connessione ssh, Vim è praticamente l'unica cosa che siete sicuri di trovare, e che funziona in una shell, se volete anche solo aprire e leggere un file. Infine va detto che Vim, con tutte le sue peculiarità, è comunque lo strumento più comodo quando dovete modificare al volo un file, senza bisogno di abbandonare la shell e aprire un editor separato.

Portatevi in una directory in cui c'è un file di testo, e apritelo con Vim:. Ecco perché occorre imparare almeno le basi di Vim! Se preferite un editor grafico o un IDE, allora la scelta non manca.

Si tratta della "esperienza IDE" per definizione, completa e totalizzante, che integra e supporta ogni aspetto della vostra attività di programmatore. Il vantaggio è che non resta nulla o quasi che dovete cercare altrove.

Lo svantaggio, probabilmente, è che vi sentirete un po' costretti a fare le cose solo in un certo modo. È davvero una questione di gusti, alla fine. Un'alternativa ulteriore potrebbe essere WingIde la cui versione free è tuttavia piuttosto limitata. La corazzata di casa Microsoft ha fatto negli ultimi anni due passi importanti che l'hanno resa competitiva anche al di fuori del mondo. Net e per la programmazione Python nello specifico: Visual Studio Community , una versione free dedicata espressamente al mondo dell'open source, e i Python Tools per Visual Studio , sviluppati dal Python Team di Microsoft guidato da Steve Dower, che è anche l'esperto Windows tra i core developer di Python, e il responsabile delle Windows release di CPython.

Net, allora Visual Studio dovrebbe essere lo strumento che fa per voi. Se gli IDE vi sembrano troppo ingombranti e preferite un editor grafico più snello, allora davvero avete l'imbarazzo della scelta.

Ma il primo della classe nel campo degli editor grafici è probabilmente Sublime Text : vanta una larga e attiva comunità di utenti, e una repository sterminata di add-on che coprono praticamente qualsiasi necessità. Sublime Text ha introdotto o reso popolari molti concetti innovativi come l'editing multi-cursore, che poi sono stati emulati dagli editor grafici più giovani. In effetti, editor come Atom o Brackets hanno un'aria Un pregio ulteriore di Sublime Text è la sua notevole velocità e robustezza: è difficile vedere un crash o un rallentamento anche con file di notevoli dimensioni.

In generale, Sublime Text è forse l'unico editor grafico che non fa storcere il naso neppure alla "vecchia scuola" degli hacker che usano Vim o Emacs. Il lato negativo è che è un po' difficile da configurare, e la sovrabbondanza di add-on rende complicato scegliere.

Se volete usare Sublime Text per la programmazione Python, vi conviene prendere spunto da una guida come questa. Prendiamo infine in considerazione Visual Studio Code , un editor di Microsoft ancora giovane, ma che è già cresciuto rapidamente e si è conquistato una sempre crescente quota di successo.

Nonostante il nome, non ha niente a che vedere con Visual Studio. È basato sul motore Node. È tuttavia più veloce e stabile di Atom, e rispetto a Sublime Text sembra un po' meglio organizzato, più facile da usare. Se siete programmatori esperti e avete già delle esigenze particolari, Sublime Text è ancora imbattibile e forse lo resterà per molto tempo.

Se state iniziando, Code potrebbe essere uno strumento interessante: relativamente stabile, veloce, facile da usare, in rapida crescita e con un buon supporto da parte di Microsoft. E in definitiva, una volta imparato Code è comunque molto facile passare poi a Sublime Text. Aggiungiamo qualche indicazione su come usare Code per la programmazione Python. Con questo non intendiamo suggerire che Code sia l'editor migliore: è solo facile da impostare, e quindi adatto a una breve guida come questa, per dare l'idea di cosa più o meno occorre fare anche con gli altri editor.

Prima di tutto, bisogna scaricare e installare Code. Fatto questo, occorre procurarsi l'estensione ufficiale per Python. Il manuale completo si trova qui. Code ha la nozione di "spazio di lavoro" workspace , che corrisponde a una directory: usate quindi "Open folder Le impostazioni dello spazio di lavoro sovrascrivono le impostazioni generali: Code genera una directory nascosta.

Potete semplicemente copiare questo file da un progetto all'altro, se volete mantenere le stesse impostazioni in diversi progetti. Se non trova un settings. Nell'elenco dei setting, un'attenzione particolare meritano le varie path. La path predefinita per l'interprete Python è "python. Impostate poi "python. In questo modo Code mantiene un elenco di tutti i venv che avete creato, oltre a quelli che trova installati globalmente.

Code vi mostra sempre quale interprete sta usando attualmente, nella barra di stato: se non è quello giusto, basta cliccarci sopra per sceglierne un altro. Una volta che Code lavora nel venv giusto per il vostro progetto, anche l'autocompletion funzionerà meglio, mostrandovi i suggerimenti dai pacchetti che avete installato nel venv.

Eccovi pronta una shell Python interattiva, che usa lo stesso interprete del vostro codice, e "vede" quindi gli stessi pacchetti installati. Il linter predefinito è PyLint, ma potete configurarne altri e anche più di uno. Chiaramente PyLint va installato, prima di poterlo usare: se Code non lo trova, si offre di istallarlo per voi. I messaggi di PyLint sono riassunti nella barra di stato: cliccate per avere un report più dettagliato.

Code rispetta le impostazioni di PyLint per il filtraggio dei messaggi, se usate un file. Se avete installato Git, allora Code vi offre una discreta integrazione: il pulsante "Git" nella barra di sinistra vi consente di fare le operazioni più comuni commit, push, pull La barra di stato mostra la branch attiva e vi permette di fare un checkout. Per altri comandi anche piuttosto comuni tag, log Nei progetti dove non volete usare Git, vi conviene impostare "git.

Code e Python for Visual Studio Code vi offrono molte altre opzioni relative a fattorizzazione, formattazione, unit test, debugging, integrazione con Jupyter.

La guida spiega tutto nel dettaglio. Una delle prime cose che in genere si fanno dopo aver installato un editor, è configurare l'aspetto estetico. Per esempio, molti programmatori preferiscono una combinazione di colori scura come l'onnipresente Monokai o una delle sue varianti perché la trovano più riposante per gli occhi. La scelta più importante, tuttavia, è quella di un font con cui visualizzare il codice.

Un altro fattore determinante per la scelta del font è la resa a diverse dimensioni, a seconda della geometria del vostro schermo. Qui occorre tener conto che, per regola, la riga non dovrebbe essere più lunga di 79 caratteri. Mantenendo la finestra dell'editor a tutto schermo, la dimensione "giusta" del font è quella che vi consente di avere tutta la riga visibile, lasciando spazio a destra e a sinistra per gli ulteriori elementi grafici previsti dall'editor barre laterali, gutter, numeri di riga Siccome molti editor hanno elementi laterali ingombranti, un fattore di pregio per un font è la sua "compattezza" una buona crenatura : la riga deve essere densa, ma restare ugualmente ben leggibile.

In ogni caso, se il font non rende bene quando è regolato alla dimensione giusta per il vostro editor e il vostro schermo, è meglio cambiare font piuttosto che adattare il layout dell'editor. Un aspetto decisamente meno importante è la resa del font con diverse formattazioni.

Qui il fatto è che il codice è sempre "puro testo" non formattato: tuttavia molti editor applicano una formattazione automatica a seconda del contesto per esempio, i commenti sono resi in corsivo, etc.

Ovviamente è possibile personalizzare ed eventualmente abolire queste scelte di formattazione, ma conviene comunque scegliere un font che sia leggibile anche in corsivo e in neretto.

Windows è già dotato di uno dei migliori font "da programmatore" in circolazione, ovvero Consolas che è uno dei font selezionabili nella shell cmd. Molti preferiscono comunque la sua variante open source Inconsolata. Ma le scelte sono veramente molte, e nuovi font interessanti nascono ogni giorno. Per finire, una rapida rassegna di alcune librerie "Windows-oriented" che occasionalmente potrebbero tornare utili. Esistono alcune distribuzioni alternative di Python, curate da terze parti, che installano non solo Python e la sua libreria standard, ma anche una selezione curata di pacchetti e framework esterni.

Fino a non molto tempo fa, come abbiamo visto, in Windows era difficile installare molti pacchetti con estensioni non pre-compilate: le distribuzioni alternative erano un modo facile per poter usare questi pacchetti, dal momento che i curatori della distribuzione li fornivano già pre-compilati.

Scarica il file da Python S3 trovato

Con l'introduzione di Pip e del nuovo formato Wheel, è diventato molto più facile trovare pacchetti pre-compilati per Windows, e ormai non c'è quasi più bisogno di ricorrere a distribuzioni alternative solo come escamotage per usare certi pacchetti. Ha senso invece ricorrere a una distribuzione alternativa se offre un reale vantaggio rispetto al tipo di lavoro che vogliamo fare per esempio, Anaconda per certi ambiti scientifici, tecnologici, accademici.

L'implementazione ufficiale di Python, l'unica sviluppata e supportata dalla Python Software Foundation, è CPython, scritta in C, che è quella che abbiamo preso fin qui in considerazione. Ma esistono altre implementazioni curate da terze parti: le più note sono Jython il cui bytecode viene eseguito dalla Java Virtual Machine, e PyPy , un'implementazione di Python scritta in CPython che offre un JIT compiler e stackless mode per aumentarne velocità e capacità in concurrency.

Un'implementazione dedicata al mondo Windows è IronPython , scritta in C e integrata in. Net allo stesso modo delle consuete librerie Python. Purtroppo IronPython implementa solo Python 2, ma di recente lo sviluppo è ripreso e ci sono piani per implementare anche Python 3. Dedichiamo questa sezione all'esame di alcuni problemi legati all'uso di Unicode in Windows.

Ricordiamo che questa non è una guida introduttiva a Unicode. Le note che seguono presuppongono una certa conoscenza operativa su Unicode, gli encoding Unicode e gli encoding regionali, gli strumenti Unicode di Python e il loro uso.

Se usate Python per costruire programmi a interfaccia grafica GUI , in genere non dovete preoccuparvi troppo di Unicode. I moderni GUI framework supportano Unicode in maniera trasparente, e in pratica per usarli basta sapere come funziona una stringa in Python. In genere il principiante non si preoccupa se ogni tanto nei suoi esercizi qualche carattere "strano" viene fuori "sbagliato".

Tuttavia esistono anche programmi professionali a interfaccia testuale CLI , e se intendete percorrere questa strada dovete considerare attentamente Unicode. Per cominciare, tenente presente che il problema spesso non riguarda Python. I font disponibili in cmd. Potete cambiare font facendo clic col pulsante destro nella barra del titolo della shell e selezionando "Proprietà". Copiateli da questa pagina del vostro browser e provate a incollarli nella shell clic col destro, e "incolla".

A seconda del font impostato, vedrete correttamente i glifi oppure solo dei "segnaposto". Potete controllare esattamente quali caratteri sono supportati da un font usando tool come BabelMap. Aggiungere un font a quelli disponibili in cmd.

Il problema di fondo è che cmd. Queste shell sono in grado di visualizzare contemporaneamente diversi font, e ricorrono di volta in volta a quelli in grado di farvi vedere i caratteri necessari all'incirca come fa il vostro browser. Resta inteso che, se nessun font tra quelli installati sulla vostra macchina copre un certo carattere, allora in quel punto resterà sempre un "segnaposto".

In secondo luogo, ricordate che la shell non usa di solito lo stesso encoding di default che usa Windows detto "encoding Ansi". Almeno da noi in Italia, "Ansi" è cp che, vale la pena di ricordarlo, non coincide con "Latin 1" come spesso si crede mentre cmd.

Per esempio, aprite un file con il Blocco Note, scriveteci dei caratteri accentati qualsiasi, e salvate. Se adesso dalla shell provate a vedere il contenuto del file con type test. All'inverso, se inviate il contenuto della shell a un file di testo, per esempio con copy con test. Potete in ogni caso cambiare l'encoding della shell, impostando per esempio quello di default di Windows, con il comando chcp : dopo di che, queste operazioni funzioneranno senza problemi ricordiamo che chcp senza argomenti vi mostra l'encoding attualmente attivo.

Per fortuna in Python, almeno a partire dalla versione 3. Operazioni come print e input riescono senza problemi, grazie al fatto che la Pep impone ormai a Python di comunicare con la shell usando le versioni Unicode delle API di Windows. Questo vuol dire che voi potete ignorare i dettagli dell'encoding della shell, Windows fa tutto il lavoro sporco dietro le quinte e voi dal lato Python vi ritrovate sempre con le stringhe Unicode "giuste".

Provate a eseguire questo semplice script:. Potete provare questo script sia con cp sia con cp nella shell, ma il risultato è sempre buono almeno finché non cercate di stampare un carattere non supportato dal font in uso! La situazione precedente a Python 3. Se vi serve un'analisi approfondita della situazione precedente, potete consultare la Issue nel bug tracker di Python, o leggervi il Readme della Windows Unicode Console che implementa molti dei fix che poi sono stati inseriti nella Pep Anche se non avete Python 3.

Se provate a eseguire il nostro script con questo "legacy mode" attivo e l'encoding di default cp nella shell, vedrete che prima di tutto la stampa delle righe di test non va a buon fine perchè Python prova a encodarle in cp D'altra parte, se impostate l'encoding della shell a cp prima di eseguire lo script, le cose torneranno a funzionare.

In alternativa, potete forzare l'encoding giusto direttamente nel codice Python. Se siete in dubbio, sys. In Windows il file system è "Unicode" più precisamente, le path sono in utfle , ma Python ha sempre usato le API Ansi di Windows per colloquiare con il file system, con effetti collaterali sgradevoli. La situazione è analoga a quella appena vista per la shell, ed è stata risolta in modo identico: la Pep , gemella della Pep vista sopra, impone a Python 3.

Vi rimandiamo alla lettura di questa Pep per i dettagli, ma il succo è questo. Nella situazione precedente, non c'erano comunque problemi almeno finché le path venivano rappresentate come stringhe in Python 3 ovvero stringhe Unicode in Python 2. E quando un carattere non è coperto dall'encoding Ansi, finisce sostituito da un segnaposto. Di conseguenza non è garantito che sia possibile "fare il giro completo", ovvero leggere il nome di un file, conservarlo in una variabile, e usare quella variabile per aprire il file.

Per capire il problema, create un file con qualche carattere cirillico nel nome ricordate: usiamo i caratteri cirillici perché non sono coperti da cp ma sono comunque visualizzabili dal font Consolas, che vi conviene usare nella shell cmd. Fate prima una prova con Python 2 ovvero, situazione pre-Pep :.

Il risultato di os. La stessa situazione si verifica in Python 3, ricordando che le stringhe "normali" equivalgono alle stringhe Unicode di Python 2. Se avete solo Python 3. Invece, in Python 3. Tutto questo è interessante, ma forse vi state chiedendo: perché uno vorrebbe esprimere le path sotto forma di bytes invece che come stringhe Unicode? E anzi, perché Python dovrebbe permettere che le path siano bytes?

Web & Digital

Non sarebbe più facile impedire di usare bytes per esprimere le path? La risposta a queste domande è: perché, piaccia o no, nel mondo Posix le path sono bytes. La Pep chiarisce anche questi aspetti di compatibilità. Ancora a proposito di path, ricordiamo qui che a partire dalla versione 3.

Questo è un effetto collaterale di usare le API Unicode di Windows che appunto supportano i nomi lunghi. La questione dei "nomi lunghi" non riguarda Python in senso stretto, ed è facile documentarsi in rete in proposito. Qui Python, come è ovvio, non ha alcun potere.

In generale, quando il testo è "salvato" da qualche parte, si trova in forma di bytes e quindi con un determinato encoding. Come potete sapere qual è l'encoding di una sorgente di testo esterna? Beh, ecco il problema: nel caso più generale, non c'è modo di esserne sicuri.


Nuovi post