Python çoklu işlem: AttributeError: Yerel nesneyi toplayamıyor

0

Soru

Bu çerçeveyi kullanarak Mattermost işbirliği aracı için bir ChatOps botu yazdım. Şimdi entegrasyon testleri yazmaya ve çalıştırmaya çalışıyorum ve örneklerini kullandım. Git deposunu klonlayarak testleri kendiniz çalıştırabilirsiniz. Onların docker-compose.yml dosya sadece bir Linux makinesinde çalışacaktır. Bir Mac makinesinde çoğaltmak istiyorsanız, aşağıdakileri düzenlemeniz gerekir: docker-compose.yml -e doğru:

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"

Komutu çalıştırdıktan sonra docker-compose up -d Mattermost şu adreste mevcuttur localhost:8065. Projelerinden sadece basit bir test yaptım ve kopyaladım base-test.py. Kaynak kodumu buradan görebilirsiniz. Komutu çalıştırarak testi başlattıktan sonra pytest --capture=no --log-cli-level=DEBUG . aşağıdaki hatayı döndürür: AttributeError: Can't pickle local object 'start_bot.<locals>.run_bot'. Bu hata, projelerinde aynı test durumunda da görünür. Hata, satır 92'de gerçekleşir. utils.py dosya

Burada neyi yanlış yapıyorum?

2
0

Bu yoldan çoktan geçip geçmediğinizi bilmiyorum ama sanırım run_bot'un yaptığı botu almasını sağlayarak dekapaj hatasını aşabilirsiniz bot.run() bir argüman olarak ve daha sonra sürece iletin.

2021-11-24 15:38:26

Yok, anlayamadığım ne demek. Geçmek gibi birçok şeyi denedim bot bir argüman olarak ama başarı yok :(
Lucas Scheepers
0

GitHub deposundaki Eylem sekmesine bir göz atın. Pytest düzgün çalışıyor gibi görünüyor (webhook testindeki istisnaları göz ardı ederek)

Ortam kurulumunuzu karşılaştırmak için kullanabileceğiniz yeni bir çalışma aşağıdadır: https://github.com/attzonko/mmpy_bot/runs/4289644769?check_suite_focus=true

2021-11-29 17:04:19

Tam olarak aynı ortama sahibim: Python 3.8.2 ve Pytest 6.2.5. Ayrıca yukarıdaki soruda belirtilen farklı bir komut çalıştırıyorum ve pickle error. Kullandığın komutu kullanmaya çalıştığımda: pytest . -vv -n auto geri dönüyor: unrecognized arguments: -n auto. Belki nedenini biliyorsundur? Ayrıca bu soruyu altı gün önce yayınladım ve testler 7 gün önce çalıştırıldı, belki de yerel makinemde neden başarısız olduğunu açıklıyor?
Lucas Scheepers

İşte 1 saat öncesinden bir çalışma: github.com/attzonko/mmpy_bot/runs/...
Plazgoth

Diğer dillerde

Bu sayfa diğer dillerde

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