Forum >> Principianti >> modulo matplotlib

Pagina: 1 2 Avanti

Buonasera a tutti, sono alle prese con il modulo di plotting matplotlib. Siccome non è presente nei moduli built-in di python, ho installato Anaconda distribution per Python 3.6 32 bit per windows (che ovviamente è la versione per il mio os). Ora Anaconda contiene matplotlib, come ho potuto verificare anche su Anaconda Navigator, tuttavia quando sono sull'interprete e scrivo il codice non trova il modulo:
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ModuleNotFoundError: No module named 'matplotlib'





Allora ho provato ad inserire una variabile d'ambiente di sistema PATH per poi riavviare il os:

C:\users\Anaconda3\




..niente da fare neanche in questo caso..




ho provato a cambiare la directory sull'interprete:

import os

os.chdir('c:\\users\\Anaconda3')




..tutto uguale..




Grazie per la pazienza, buona serata a tutti.
La prima cosa che mi verrebbe da dire è: Anaconda è un gran pasticcio, non usate mai Anaconda, lasciate perdere Anaconda. Ho perso il conto di quanti problemi strani legati ad Anaconda ho visto in giro, ed è sempre difficilissimo risolverli perché può dipendere da mille dettagli, e Anaconda poi ci mette del suo per nasconderti le cose.


Se sei già bravo a capire come funziona un'installazione di Python su Windows, allora usa senz'altro Anaconda e se hai un problema sei capace a capire da dove viene. Ma se non sei bravo, allora Anaconda *non* è così "facile" come finge di essere. Il consiglio è di perdere un po' di tempo a leggere la mia guida (link in firma) e imparare a installare e usare Python su Windows in modo sano e ragionato, senza Anaconda.


Nel tuo caso specifico, così a occhio direi: prima di tutto, perché hai installato Anaconda a 32 bit? O hai un computer veramente ma veramente vecchio, oppure sicuramente hai una piattaforma a 64 bit. Sai, ormai non sarei neppure più tanto sicuro che Anaconda conservi certi pacchetti (Numpy, Matplotlib...) compilati a 32 bit... magari poi dopo una ricerca di trenta ore riesci a trovare il documento nascosto in cui è documentato che matplotlib non funziona a 32 bit... boh.


Secondo, tutte le operazioni che hai fatto con le variabili d'ambiente sono *profondamente sbagliate*, e ti auguro di non averle fatte davvero perché altrimenti di sei bruciato Windows. In particolare esiste *già* una variabile d'ambiente che si chiama PATH, ed è fondamentale. Se l'hai *sostituita* con una tua, e l'hai fatto in modo *permanente*, ehm... hai fatto un disastro. E comunque non è che aggiungere "c:/users/anaconda3" alla path serve a qualcosa... non credo nemmeno che esista quella directory.


Ma non stiamo a investigare troppo su questa cosa della path: se hai fatto un pasticcio e non puoi più rimediare, allora non puoi più rimediare. Prendi una shell e scrivici dentro "echo %path%" per vedere cosa contiene adesso la tua path... se contiene ancora qualcosa.


Detto questo, il punto è: hai per caso altre installazioni di python sulla tua macchina? O virtual environments attivi? O qualsiasi cosa per cui dalla shell potresti non selezionare l'interprete giusto? Prova questo: dalla stessa shell python in cui *non* riesci a importare matplotlib, prova a scrivere


>>> import sys
>>> sys.executable
"......."
Quello che vedi è l'indirizzo dell'interprete python attualmente attivo. Prova a cercarlo manualmente, "sfogliando le cartelle" a botte di clic col mouse, e cerca la directory "lib/site-packages" di quella installazione... se ci trovi matplotlib dentro, allora non capisco. Se non ce lo trovi, allora vuol dire che stai selezionando l'interprete sbagliato, e che devi capire qual è l'interprete giusto (quello installato da Anaconda) che "vede" matplotlib.




Ciao RicPol, grazie per l'interessamento! Per quanto riguarda Anaconda, l'ho installato seguendo le istruzioni dell'autore di "come pensare da informatico", sul fatto che il mio notebook sia a 32 bit sono assolutamente d'accordo con te che sia poco performante, sicuramente lo cambierò in futuro (magari passando a linux) ma volevo prima provare a capirci qualcosa. Per quanto riguarda l'installazione di python l'ho effettuata ed usata in questi mesi senza problemi, penso sia ok, in ogni caso seguirò sicuramente il tuo consiglio di leggere la tua guida, grazie! Sul discorso delle path, non ho cancellato quelle esistenti, ma ho solo aggiunto quella nuova, diciamo che è stata una mossa disperata per prova a "far funzionare" il modulo benedetto, la directory era comunque corretta. Ho una sola installazione di python a cui ora si è aggiunto anaconda. Ho provato ad eseguire il comando "import matplotlib.pyplot as plt" dalla shell anaconda dopo aver digitato "python" e funziona, infatti nella directory di python non è presente il modulo in questione, ma in quella di anaconda si. Diciamo che l'autore non è stato molto chiaro, pensavo che installando anaconda mi sarei trovato il modulo anche su python.. Non si può aggiungere direttamente in python senza dover usare anaconda? che se non ho capito male probabilmente serve più a chi fa coding di livello che a un principiante come me..
Grazie mille e buona serata!
Come pensare da informatico è un altro libro che... mah, lasciamo stare. Certo che matplotlib si può "aggiungere" a python senza problemi, senza dover installa Anaconda, basta un "pip install matplotlib". Di nuovo, leggiti la mia guida. Il problema di avere python (e windows) a 32 bit non è che è "poco performante", figurati. Il problema è che l'architettura 32 bit è in disarmo, e ormai è difficile trovare librerie anche importanti compilate a 32 bit. Per esempio, non so se proprio numpy/matplotlib le trovi a 32 bit su PyPI (cioè, installando con pip)... magari qui effettivamente Anaconda è utile perché mantiene ancora i pacchetti compilati anche a 32 bit.


Comunque il tuo problema è che hai due installazioni e peschi l'interprete sbagliato, come immaginavo. Mah, sarò vecchia scuola ma io consiglio sempre ai principianti di imparare prima bene a programmare in python e come funziona l'ecosistema python, prima di lanciarsi in cose più avanzate.

Grazie per la risposta velocissima! "Come pensare da informatico" l'ho trovato proprio qua su Python Italia, è consigliato per i principianti e così ho fatto, anziché improvvisare.. non è un capolavoro di certo perché ha molti buchi, tende a fornire problemi per poi spiegare come risolverli capitoli dopo.. ma tutto sommato non è andata male fino ad ora, pensavo peggio.. l'ho visto anche come momento di crescita della mia attitudine a risolvere problemi, se non ho capito male i programmatori/sviluppatori sono chiamati sempre a confrontarsi con problemi magari ostici, ho cercato quindi di vedere il bicchiere mezzo pieno anziché vuoto, cercando di aggiustarmi quando possibile e ricorrere al forum come extrema ratio.. In questi giorni ho iniziato a leggere la tua guida, e per quanto poco possa valere la mia opinione posso dire che mi sembra davvero ben fatto e dettagliato, grazie per il consiglio e complimenti per il lavoro svolto! A proposito della guida parli di creare un drive D:, se non ho inteso male credo tu faccia riferimento ad una partizione del disco rigido vero? attraverso gestione disco? grazie ancora e buona serata!
Guarda, Pensare da informatico... sarebbe lunga da spiegare. La versione breve è che è un brutto libro, punto. La cosa peggiore è che introduce con grande leggerezza dei pattern sbagliati fin dal principio. Un sacco di volte mi è capitato il principiante che fa una c***ata perché "l'ho visto su pensare da informatico"... e poi vai a vedere e in effetti è proprio così! Cioè, magari non trovi quella esatta c***ata, ma vedi che il libro autorizza o in qualche modo ti porta a fare la cosa sbagliata. Comunque intendiamoci, non è un disastro completo. E poi non c'è niente da fare, è gratis ed è in Italiano... ed è inutile combattere contro queste cose.


In generale, consiglio sempre di lasciar perdere Pensare da informatico e fare la spesa di comprarsi un libro più serio... consiglio sempre il Lutz, ma insomma, anche in Italiano qualche scelta c'è.


Quanto alla mia guida, riguarda un argomento più specifico, e l'ho scritta appunto perché volevo fare un po' di chiarezza sull'enorme confusione che c'è tra i (molti) principianti che vogliono usare correttamente python su windows. Non vuole essere una guida "a python", naturalmente. Il problema è che, mi sto rendendo conto, il principiante spesso non ha neanche i prerequisiti necessari per cominciare a leggere la guida... tipo, non sa come si usa una shell, non sa che cosa è una variabile d'ambiente, che cosa è la directory corrente... Ma ho paura che se mi metto a scrivere una guida su queste cose, poi finisce che devo partire da "come si accende il computer"... mah... magari vedrò in futuro.


Negli esempi della mia guida uso il drive "d:/" come base di partenza: ho notato che in molti computer "da supermercato" esiste un drive "d:/" (tipicamente una partizione del disco fisso, lasciata libera per i dati). Un drive "d:/" l'ho visto anche in molte configurazioni "da ufficio" (una partizione, o magari addirittura un secondo disco fisico, che per policy aziendale non viene sottoposto a backup automatico). Se comunque il tuo computer non ha il drive "d:/", puoi usare senza problemi "c:/" o qualsiasi altra directory come base di partenza...




non è che non voglio spendere, oltre al fatto di essere consigliato qua sopra, ha il vantaggio di permettere di provare e vedere se la materia ti piace e se ci capisci qualcosa a costo zero. Detto questo visto che mi sono tolto i dubbi se mi consigli di abbandonare "come pensare da informatico" (sono a 2/3) e passare subito (senza finirlo) al lutz lo faccio! è quello in allegato il libro di cui parli? Potrei farlo anche sul pc ma li il punto è che se faccio qualche cagata finisce che me lo brucio e mi girerebbe, con questo posso fregarmene, è un bel vantaggio. Se riesco ad aspettare così da avere più competenze credo sia più saggio. Per la partizione ti aggiorno. Capisco che per un pro avere dubbi su variabili d'ambiente, etc .. sia un eresia, ma se sei un utente medio che vuole provare a passare dall'altra parte della staccionata penso sia normale.. grosse alternative non ne vedo, umiltà e avanti.. per il suicidio non sono ancora convinto :glasses-cool:

Grazie ancora!
Allegati
Dimenticavo notavo che fa riferimento alle versioni python 2.7 e 3.3.. è il migliore ed il più recente?
Beh credo che per Pensare da informatico ci siano in giro versioni vecchie (py 2.7) e nuove (serie 3, non so fino a quale versione). Chiaro che la più recente è meglio. Ma basta che sia per python 3, comunque. Per il livello a cui tratta la materia, non è che 3.3 o 3.7 faccia tanta differenza.




Ok, abuso della tua pazienza e ti chiedo ancora una cosa:

D:\envs> d:/envs/test/scripts/activate 

dovrebbe attivare il venv e variare il prompt in

(test)>


per indicare che si lavora nel venv come da te indicato nella tua guida

..se non lo fa, cioè il prompt è sempre > è perché ho ancora problemi con le variabili d'ambiente?

se eseguo il comando

echo %path%

ottengo
%path%

però passando da pannello di controllo le vedo, videata in allegato (quelle di sistema).. il launcher py funziona.. non le ho mai cambiate o cancellate… avevo provato ad aggiungere quella di anaconda ma nient'altro.. ho provato anche da un pc di un amico e il risultato è il medesimo..

Grazie molte per la collaborazione.

Allegati


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.