Miruny, "pomuszcie". Mam problem z odpaleniem skryptu Pythonowego (3.5.2) w trybie debugu.

Korzystam z PyCharma Community (2016.2.3), skrypt z grubsza polega na postawieniu (i utrzymaniu) dwóch procesów serwisowych działających na socketach - odpalając przez "Run" nie ma problemu, obydwa ładnie śmigają, nadają i odbierają requesty. Jak odpalę w trybie debugu na obydwu procesach po kilku (3-4) sekundach leci KeyboardInterrupt ( ͡° ʖ̯ ͡°). Próbowałem wygooglować, ale nazwa wyjątku
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@asunez: keyboardInterrupt to to samo co bys sobie przerwal skrypt z klawiatury wciskajac ctrl+c, czy czym tam sie go przerywa pod Twoim systemem, musi byc w jakis sposob wysylany ten sygnal przez debugger.
  • Odpowiedz
@wiewior_s: Wiem, czym jest KeyboardInterrupt. Pytanie właśnie, dlaczego mój debugger go wysyła i jak temu zaradzić. W googlach jedyne co się przewija w przypadku właśnie socketów to jak prawidłowo je zatrzymać za pomocą CTRL+C, gdzie ja mam dokładnie odwrotną sytuację - nie chcę nic zatrzymywać.
  • Odpowiedz
Jeśli chciałbym w Pythonie 3.5 wykonywać kilka instrukcji niezależnych od siebie (ale wykorzystujących na przykład ten sam zasób, np. pendrive'a) jednocześnie, to powinienem wykorzystać _asyncio czy multiprocessing_?

Przykładowo - chciałbym wykonać kopiowanie iluśtam plików z HDD na pendrive'a, ale każde kopiowanie z osobna móc zatrzymać, anulować itd. Jak się do tego zabrać? Co jest w moim przypadku lepsze?

Pytanie bonus - czy w razie potrzeby kod asynchroniczny można "puścić" synchronicznie?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@asunez: jeśli chodzi o wgrywanie na pena, to i tak możesz puścić co najwyżej jeden strumień. Jak puścisz dwa, to one się będą przełączać między sobą, co tylko zwolni przesył drastycznie.
Do kopiowania to kolejkę trzeba robić.
  • Odpowiedz
@asunez: asyncio jest generalnie do oczekiwania na zasoby, albo na coś innego, do pętli eventów, albo opóźniania reakcji, etc. multiprocessing może ci się przydać jak będziesz chciał przeliczyć niezależnie różne obszary pamięci, nie wiem, mnożyć macierze. Jak byś to połączył to możesz równolegle oczekiwać na niezależne zdarzenia, chociaż to już się trochę bez sensu robi, ale kto wie.
  • Odpowiedz