Python multiprocessing: AttributeError: nemůžu naložit místní objekt

0

Otázka

Napsal jsem ChatOps bot pro nástroj pro spolupráci Mattermost pomocí tohoto rámce. Teď se snažím psát a spouštět integrační testy a použil jsem jejich příklady. Klonováním git repozitáře můžete spustit testy sám. Jejich docker-compose.yml soubor bude fungovat pouze na Linuxu. Pokud chcete reprodukovat na počítači Mac, budete muset upravit docker-compose.yml k:

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"

Po spuštění příkazu docker-compose up -d Mattermost je k dispozici na localhost:8065. Já jsem si vzal jen jeden jednoduchý test z jejich projektu a kopírovat to v base-test.py. Můžete vidět můj zdrojový kód zde. Po spuštění testu příkazem pytest --capture=no --log-cli-level=DEBUG . to bude vrácena následující chyba: AttributeError: Can't pickle local object 'start_bot.<locals>.run_bot'. Tato chyba se také objeví na stejné testovací případ v jejich projektu. Chyba se stane na řádku 92 v utils.py soubor

Co dělám špatně?

2
0

Nevím, jestli už jsi šel touto cestou, ale myslím, že bys mohl dostat přes moření chybu tím, že run_bot vzít bot, který to dělá bot.run() s jako argument a pak ji přenést do procesu.

2021-11-24 15:38:26

Docela nechápu, co jsi tím myslel. Zkoušel jsem více věci, jako je předávání bot jako argument, ale bez úspěchu :(
Lucas Scheepers
0

Podívejte se na kartu Akce na GitHub úložiště. Pytest se zdá spustit správně (ignorování výjimky na webhook test)

Zde je nedávné spuštění můžete použít k porovnat své prostředí set-up: https://github.com/attzonko/mmpy_bot/runs/4289644769?check_suite_focus=true

2021-11-29 17:04:19

Já mám přesně stejné prostředí: Python 3.8.2 a Pytest 6.2.5. Také jsem běží jiný příkaz je uvedeno v otázce výše, a to vrátí pickle error. Když jsem zkusil použít příkaz, který používáte: pytest . -vv -n auto to vrací: unrecognized arguments: -n auto. Možná znáš, proč? Také jsem vyslán na tuto otázku před šesti dny a testy runned 7 dny, možná to vysvětluje, proč se teď nedaří na mém lokálním počítači?
Lucas Scheepers

Zde je spustit z 1hod před: github.com/attzonko/mmpy_bot/runs/...
Plazgoth

V jiných jazycích

Tato stránka je v jiných jazycích

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