Problema su from xxx import yyy

Configurazione e uso di IDE, editor, compilatori, in fase di programmazione.
Jeve_cm
Prode Principiante
Messaggi: 2
Iscrizione: giovedì 17 marzo 2022, 14:36

Problema su from xxx import yyy

Messaggio da Jeve_cm »

Buonasera,
in IDLE shell 3.8.10 non riesco ad effettuare l'import di un determinato componente, mentre l'import di altri compnenti funziona bene.
Utilizzando l'istruzione

from xxx import yyy

prendo il messaggio di errore:

ImportError: cannot import name 'yyy' from ''xxx' (unknown location)

mentre la stessa istruzione lanciata dalla shell di python3 ha esito positivo.

credo si tratti di una questione semplice da risolvere, ma io sono un novizio di unix....potete per cortesia aiutarmi?
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40295
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: Problema su from xxx import yyy

Messaggio da steff »

Ciao e benvenuto! La sezione dilemmi non è per quesiti tecnici, sposto in strumenti per la programmazione.
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1620
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Problema su from xxx import yyy

Messaggio da nuzzopippo »

steff ha scritto:
venerdì 18 marzo 2022, 8:02
Ciao e benvenuto! La sezione dilemmi non è per quesiti tecnici, sposto in strumenti per la programmazione.
Più che per "strumenti" la problematica e specifica proprio della programmazione, perché, credo, riguarda i fondamenti stessi del linguaggio, con particolare riferimento alla strutturazione dei moduli, siano essi costituenti il codice ovvero librerie, non penso sia inerente ad Unix ma a qualche errato riferimento.

Lo OP non è stato adeguatamente circostanziato nello esporre il problema ed ha manipolato il traceback in maniera di cancellare riferimenti che probabilmente farebbero intuire il problema, per lo meno farebbero capire se si tratta di librerie contenute nei repository python o di codice legacy, in quest'ultimo caso potrebbe entrare in gioco la modalità di strutturazione dei moduli-programma, si guardi la sezione "6.4. Package" della pagina dedicata ai moduli del tutorial di python.
Fatti non foste a viver come bruti ...
Jeve_cm
Prode Principiante
Messaggi: 2
Iscrizione: giovedì 17 marzo 2022, 14:36

Re: Problema su from xxx import yyy

Messaggio da Jeve_cm »

ok chiaro, grazie.

ho letto la sezione "6.4. Package" della pagina dedicata ai moduli del tutorial di python ed ho trovato molti concetti utili. pero' non sono riuscito a risolvere....

la libreria per cui sto cercando di effettuare l'import non e' contenuta nel repository python. La strutturazione dei moduli programma e' la seguente: home/username/prose/prose. In questa directory e' contenuta la cartella __pycahce__ e poi tutti i file dei componenti di interesse

Dovendo utilizzare una versione di numpy precedente alla utlima, ho creato un env: prose_env.

prima di lanciare la shell Python3, attivo l'env con il comando source/prose_env/bin/activate. Da python3 non ho problemi ad effettuare l'import di prose (esempio: from prose import Telescope)

con la stessa procedura lancio IDLE (quindi, prima attivo l'env di prose e poi lancio IDLE) ma quando effettuo l'import non trovo i componenti, ricevendo il messaggio di errore:

ImportError: cannot import name 'Telescope' from ''Prose' (unknown location)

ho controllato le variabili di ambiente nella shell di Python ed in quella di IDLE: hanno tutte lo stesso valore....
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1620
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Problema su from xxx import yyy

Messaggio da nuzzopippo »

Jeve_cm ha scritto:
venerdì 18 marzo 2022, 18:44
...la libreria per cui sto cercando di effettuare l'import non e' contenuta nel repository python.
beh ... in effetti è contenuta negli archivi ufficiali di python, anche se non fa parte della libreria standard
Jeve_cm ha scritto:
venerdì 18 marzo 2022, 18:44
La strutturazione dei moduli programma e' la seguente: home/username/prose/prose. In questa directory e' contenuta la cartella __pycahce__ e poi tutti i file dei componenti di interesse ...
Diavolo!
Se sei riuscito a far funzionare manualmente prose (suppongo dal codice su github) installando da Te quel mezzo giga di librerie Ti faccio tanto di cappello :giorno:
Ho fatto alcune prove con python3.8.10 di installazione tramite PyPi e downgrade di numpy alla versione 1.21, alla fine si è installato ma comunque mi ha dato alcuni errori a prove di utilizzo.
... Penso che, nell'ipotesi sopra, Tu ti sia già dedicato un bel po' e, comunque, temo che dare aiuto sulla Tua configurazione sia al di la delle mie capacità, troppe le cose che ho dubbie o ignoro.

Per altro, malgrado la release sia del 14/03/2022 ho verificato nella pagina che è stata testata su python 3.6.9, ho provato ad installarmi tale versione (sufficiente installare "idle-python3.6 e python3.6-venv accettando le librerie aggiuntive proposte) creato un venv col 3.6, e attivato il venv ho installato con pip il modulo netcdf4 prima di installare prose.
Preciso che l'installazione di prose apparentemente non ha dato problemi MA temo che il setup si buggato, nella lib/python3.6/site-packages/prose del venv mancavano tutti i sub-moduli di prose, risolto scaricandomi il prose-master da github e copiandomi le direttrici blocks, diagnostics html, io, pipeline, reports e twirl nella directory di prose ... gli import di "Telescope" non danno problemi tanto da shell quanto da idle, eseguito senza problemi il primo esempio nella pagina di prose nel PyPi senza avere segnali di errore, anche se non sono minimamente in grado di valutarne il risultato ... quanto in questi due paragrafi nel caso anche Tu voglia provare con il python 3.6 ... anche se ho il dubbio che i bugs che credo esistano nell'installer di prose possano essere indicativi di una possibile soluzione anche con l'uso del 3.8.10 ma di più non saprei dire.

Ciao

[Edit] ... giacché non l'avevo provato:
creato un venv con python3.8 ho installato il dowgrade di numpy e quindi prose

Codice: Seleziona tutto

NzP:~$ cd src/posts/jeve
NzP:~$ ls
env  src
NzP:~$ cd env
NzP:~$ ls
prose_v
NzP:~$ python3 -m venv prose3.8_v
NzP:~$ source prose3.8_v/bin/activate
(prose3.8_v) NzP:~$ python -m pip install --upgrade numpy==1.21
Collecting numpy==1.21
  Using cached numpy-1.21.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
Installing collected packages: numpy
Successfully installed numpy-1.21.0
(prose3.8_v) NzP:~$ python -m pip install prose
...
l'installazione è andata a buon fine anche se sono stati "riciclati" i pacchetti esistenti in cache

Quindi ho verificato che anche nel venv 3.8 nella directory della libreria (/home/nuzzopippo/src/posts/jeve/env/prose3.8_v/lib/python3.8/site-packages/prose) mancano i sub-moduli, copiatili come indicato in precedenza non vengono più errori nell'utilizzo di prose, Telescope viene importato tanto da shell

Codice: Seleziona tutto

(prose3.8_v) NzP:~$ python
Python 3.8.10 (default, Nov 26 2021, 20:14:08) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from prose import Telescope
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
(prose3.8_v) NzP:~$
Quanto da idle

Codice: Seleziona tutto

Python 3.8.10 (default, Nov 26 2021, 20:14:08) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> from prose import Telescope
>>> 
================================ RESTART: Shell ================================
>>> 
Spero possa aiutarTi, ciao :)
Fatti non foste a viver come bruti ...
Scrivi risposta

Ritorna a “Strumenti per la programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti