Do you need any help?

Errore HW2req quando si avvia test_01.py da Spyder (ZMQ import error)

1
1914925 (3070 points)
1 4 23
asked Oct 23, 2020 in HW2 obbligatorio by 1914925 (3,070 points)
Salve, premetto dicendo che il test funziona perfettamente se avviato utilizzando Anaconda Prompt, inoltre il codice è corretto (attualmente supero tutti e 17 i test, sto cercando di migliorarlo). Detto ciò, se avvio test_01.py da dentro Spyder (come ho fatto con l'HW1opz) al momento in cui il pc svolge il test su "test_json1_00004_test_800_7_ita", il tutto va in errore (con necessario blocco forzato della console) dando come errore una cosa davvero strana, cioè:
"File "C:\Users\Giorgio\Documents\Libri Programming\Programmi Uni\HW2req\testlib.py", line 44, in _check_import
    raise ForbiddenError(f"The import of '{name}' is forbidden")
testlib.ForbiddenError: The import of 'zmq' is forbidden"
Come si evince dal path, l'import viene usato in testlib.py e non nel mio programma, infatti io non importo proprio nulla (essendo vietato da regolamento ^^").
Ho già provveduto a cambiare {fromlist} e {level} togliendone gli uguali, in quanto sono su Windows 10, tuttavia l'errore persiste.
Nel caso fosse necessario potrò postare screenshot, contattatemi pure.

Se fosse utile, sto utilizzando Python 3.8.5 con Spyder 4
354 views

2 Answers

Best answer
andrea.sterbini (172780 points)
513 935 1789
answered Oct 23, 2020 by andrea.sterbini (172,780 points)
selected Oct 23, 2020 by 1914925
Puoi disattivare timeout e controlli settando DEBUG=True in test_01.py

E appena posso controllo se in windows viene importata surrettiziamente zmq ...
1
1914925 (3070 points)
1 4 23
commented Oct 23, 2020 by 1914925 (3,070 points)
Confermo che così funziona perfettamente test01_py, almeno nel mio caso
andrea.sterbini (172780 points)
513 935 1789
commented Oct 23, 2020 by andrea.sterbini (172,780 points)
In windoz funziona bene. Chissà che c'entra zmq ... mi informo.
1
1914925 (3070 points)
1 4 23
commented Oct 23, 2020 by 1914925 (3,070 points)
Se può tornare utile, circa 2 settimane fa ho eseguito il comando di update di tutte le librerie di anaconda (avevo già scaricato l'ultima versione dal sito, ma c'erano molti aggiornamenti da fare).
andrea.sterbini (172780 points)
513 935 1789
commented Oct 23, 2020 by andrea.sterbini (172,780 points)
Io vedo che ho pyqmz installato, ma l'errore di import non mi viene. Sto usando Anaconda 2020.07 appena reinstallato.

(casomai prova a consegnare così vedo il tuo codice)
1
1914925 (3070 points)
1 4 23
commented Oct 23, 2020 by 1914925 (3,070 points)
Ho già consegnato, ed il codice funziona perfettamente (con anche un risultato piuttosto buono). La ringrazio per la disponibilità!
1
1914925 (3070 points)
1 4 23
commented Oct 24, 2020 by 1914925 (3,070 points)
AGGIORNAMENTO:

Su Visual Studio Code non esce questo problema, anche con debug=false. A quanto sembra è un problema esclusivo di Spyder o della console IPython
D
Davidjjc (150 points)
0 0 1
commented Jun 19, 2021 by Davidjjc (150 points)
Salve prof, ho riscontrato anch'io il medesimo problema. Ho provato a impostare il debug=true, ma il problema persiste. Ho aggiornato tutte le  librerie, provato a disinstallare spyder, anaconda ma continuo con lo stesso errore. Cosa devo fare?
O
Oakandrew (6400 points)
4 26 63
answered Oct 23, 2020 by Oakandrew (6,400 points)
The import of 'zmq' is forbidden

Cancella "import 'zmq'" in program01.py
1
1914925 (3070 points)
1 4 23
commented Oct 23, 2020 by 1914925 (3,070 points)

Non voglio risultare scortese, tuttavia non c'è nessun import nel mio program01.py, in quanto vietato da regolamento. L'ho già scritto nell'approfondimento dell'errore.
Inoltre dopo un breve approfondimento, ZMQ sembra essere una libreria per messaggi (https://zeromq.org/get-started/), per cui davvero non avrei nessuna ragione di importarla, anche volessi "cheattare" l'homework ^^"

O
Oakandrew (6400 points)
4 26 63
commented Oct 23, 2020 by Oakandrew (6,400 points)
Gia visto, non ho letto bene tua domanda sopra
O
Oakandrew (6400 points)
4 26 63
commented Oct 23, 2020 by Oakandrew (6,400 points)

in testlib.py prova a cambiare valori dentro 

def _check_import(*args):

precisamente cambi riga con ForbiddenError a questa e verifichi condizioni sopra

raise ForbiddenError(f"Variable allowed '{allowed}' and forbidden {forbidden}")