Messaggi: 989
Discussioni: 7
Registrato: Aug 2016
Reputazione:
24
lanciarli con sudo e lanciarli con l'utente root (loggato) dalla path /root non è la stessa cosa
prova e posta gli output in ogni caso, vediamo
Coltiva linux, che windows si pianta da solo! (cit.)
Messaggi: 47
Discussioni: 11
Registrato: Sep 2017
Reputazione:
0
infatti se dal login (non root) lancio il programma che non parte (perchè è sempre lo stesso) con il prefisso sudo (non l'avevo mai provato) esso non parte e mi da un errore, ho fatto un pò di ricerca in rete e si parla di versioni di python non compatibili con alcune librerie, quindi l'ho lanciato in due modi:
sudo python2 nomeprog.py
e l'errore è:
Traceback (most recent call last):
File "tempint_mqtt.py", line 3, in <module>
import paho.mqtt.client as mqtt
ImportError: No module named paho.mqtt.client
sudo python3 nomeprog.py
e l'errore è:
Traceback (most recent call last):
File "tempint_mqtt.py", line 2, in <module>
import Adafruit_DHT as dht
ImportError: No module named 'Adafruit_DHT'
Quindi deduco che una lib non funziona con la 2.7 e l'altra con la 3.5 che sono i python installati,
quindi ho verificato nelle rispettive repo ed effettivamente nessuna delle due è compatibile con entrambi i python
Adesso installo il python 2.7.9 che dovrebbe essere compatibile con entrambi e riprovo
Pensa che sono due giorni che sto provando a farlo andare, lo stesso script (ovviamente in lua e fatto funzionare su NodeMCU) ci ho impiegato mezza giornata per farlo andare senza nessun problema.
Devo dire che raspberry su queste cose mi sta un pò deludendo ....ti aggiorno
Messaggi: 989
Discussioni: 7
Registrato: Aug 2016
Reputazione:
24
con una distro linux e python avresti riscontrato le stesse difficoltà se ti può rincuorare.
è solo questione di sperimentazione&smadonnamenti
la prossima volta sarai abilissimo a farlo andare al primo tentativo
Coltiva linux, che windows si pianta da solo! (cit.)
Messaggi: 6,919
Discussioni: 264
Registrato: Mar 2015
Reputazione:
367
È che le librerie (o moduli) Python, vanno installati sulla versione di Python in uso. Python 3 non vede le librerie che hai aggiunto a Python 2 e viceversa. Installa entrambe le librerie (se esistono e compatibili)nella versione di Python che vuoi usare, e le troverà entrambe
Messaggi: 47
Discussioni: 11
Registrato: Sep 2017
Reputazione:
0
Ho capito la differenza tra i 2 python
Allora, con pip install --upgrade telepot mi restituisce sempre errore Urllib3
se invece scrivo pip3 lo ha aggiornato e lo script sembra andare però ho un problema,
io non volevo farlo andare col python3 ma con il python2, come faccio a tornare indietro con la lib telepot ?
Devo disinstallarla ? Come si fa ? Grazie mille
Messaggi: 6,919
Discussioni: 264
Registrato: Mar 2015
Reputazione:
367
Pip installa su Python 2
Pip3 installa su Python 3
Messaggi: 47
Discussioni: 11
Registrato: Sep 2017
Reputazione:
0
Ho risolto, il problema sta nel path che viene "richiamato" da python lanciato con "sudo" (quindi al boot) e cioè
si aspetta queste lib nel path /usr/lib/python2.7/dist-packages mentre al momento dell'installazione essa è stata installata nel path /home/pi/.local/lib/python2.7/site-packages.
Basta quindi andare nella cartella di destinazione e creare il link alla lib mancante in questo modo:
>cd /usr/lib/python2.7/dist-packages
>sudo ln -s /home/pi/.local/lib/python2.7/site-packages/paho
A questo punto al reboot lo script parte regolarmente, questo problema viene sicuramente fuori anche con altre librerie,
basta applicare lo stesso metodo.