Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

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

1
1914925 (3070 points)
2 4 23
in HW2 obbligatorio by (3.1k 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
779 views
closed

2 Answers

Best answer
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
selected by
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)
2 4 23
by (3.1k points)
Confermo che così funziona perfettamente test01_py, almeno nel mio caso
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
In windoz funziona bene. Chissà che c'entra zmq ... mi informo.
1
1914925 (3070 points)
2 4 23
by (3.1k 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 (207920 points)
750 1267 2373
by (208k 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)
2 4 23
by (3.1k points)
Ho già consegnato, ed il codice funziona perfettamente (con anche un risultato piuttosto buono). La ringrazio per la disponibilità!
1
1914925 (3070 points)
2 4 23
by (3.1k 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
by
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)
7 27 64
by (6.4k points)
The import of 'zmq' is forbidden

Cancella "import 'zmq'" in program01.py
1
1914925 (3070 points)
2 4 23
by (3.1k 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)
7 27 64
by (6.4k points)
Gia visto, non ho letto bene tua domanda sopra
O
Oakandrew (6400 points)
7 27 64
by (6.4k 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}")