Python multiprocessing: AttributeError: non sottaceto locali oggetto

0

Domanda

Ho scritto un ChatOps bot per lo strumento di collaborazione Mattermost utilizzo di questo framework. Ora sto cercando di scrivere ed eseguire i test di integrazione e ho usato i loro esempi. A clonare il repository git è possibile eseguire il test da soli. Loro docker-compose.yml il file funziona solo su una macchina Linux. Se si desidera riprodurre su un computer Mac, è necessario modificare il docker-compose.yml a:

version: "3.7"

services:
  app:
    container_name: "mattermost-bot-test"
    build: .
    command: ./mm/docker-entry.sh
    ports:
      - "8065:8065"
    extra_hosts:
      - "dockerhost:127.0.0.1"

Dopo aver eseguito il comando docker-compose up -d Mattermost è disponibile a localhost:8065. Ho solo fatto un semplice test da loro progetto e copiato in base-test.py. Si può vedere il codice sorgente qui. Dopo aver avviato il test si esegue il comando pytest --capture=no --log-cli-level=DEBUG . verrà restituito il seguente errore: AttributeError: Can't pickle local object 'start_bot.<locals>.run_bot'. Anche questo errore si presenta sullo stesso caso della prova nel loro progetto. L'errore si verifica in linea 92 in utils.py file

Che cosa sto facendo di sbagliato?

2
0

Non so se è già andato giù questa strada, ma penso che si potrebbe superare il decapaggio errore facendo run_bot prendere il bot che fa bot.run() con un argomento e poi passare al processo.

2021-11-24 15:38:26

Non capisco cosa intendi dire. Ho provato più cose come il passaggio di bot come argomento, ma senza successo :(
Lucas Scheepers
0

Date un'occhiata alla scheda Azione sul repository GitHub. Pytest sembra per eseguire correttamente (ignorando le eccezioni sul webhook test)

Ecco una recente esecuzione è possibile utilizzare per confrontare il vostro ambiente di set-up: https://github.com/attzonko/mmpy_bot/runs/4289644769?check_suite_focus=true

2021-11-29 17:04:19

Ho esattamente lo stesso ambiente di programmazione: Python 3.8.2 e Pytest 6.2.5. Anche io sono in esecuzione di un comando diverso dichiarato nella domanda di cui sopra e che restituisce il pickle error. Quando si tenta di utilizzare il comando che si sta utilizzando: pytest . -vv -n auto restituisce: unrecognized arguments: -n auto. Vuoi forse sapere perché? Inoltre ho postato questa domanda sei giorni fa e i test effettuati 7 giorni fa, forse questo spiega perché è ora abbandonando la mia macchina locale?
Lucas Scheepers

Qui è un run da 1 ora fa: github.com/attzonko/mmpy_bot/runs/...
Plazgoth

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................