__main__.py에서 python3 다중 처리를 처리하는 방법

성 조지

질문을 제기했습니다. 문제의 원인을 이해하지 못했습니다 (하위 프로세스 중 하나에서 플라스크를 사용하는 것과 관련이있는 것 같습니다).

무시하십시오 (바운티로 인해 삭제할 수 없음)

본질적으로 파이썬 라이브러리를 모듈로 실행할 때 일부 프로세스 및 / 또는 풀을 시작해야합니다.

그러나 이것이 __name__ == '__main__'항상 사실 이기 때문에 __main__.py문제가 될 수 있습니다 (다중 처리 문서 참조 : https://docs.python.org/3/library/multiprocessing.html )

나는 pytgquabr.com:8182/58288945/using-multiprocessing-with-runpy에서 파일 기반 mutext에 이르기까지 여러 솔루션을 시도하여 main 의 내용을 한 번만 실행할 수 있지만 다중 처리는 여전히 이상하게 작동합니다 (예 : 프로세스가 거의 종료 됨). 오류 로그없이 시작하자마자).

이것에 대해 "적절한"방법이 무엇인지 아십니까?

미스터 미야기

__main__모듈 보호는 내부 정의 된 객체 __main__가 다른 프로세스에서 사용되는 경우에만 필요합니다 . 이 정의를 찾는 __main__것이 하위 프로세스에서 실행되는 원인 입니다.

__main__.py사용할 때는와 함께 사용되는 모든 정의 multiprocessing를 다른 모듈로 제한하십시오 . __main__.py가져 와서 사용해야합니다.

# my_package/some_module.py
def module_print(*args, **kwargs):
    """Function defined in some module - fine for use inside multiprocess"""
    print(*args, **kwargs)

# my_package/__main__.py
import multiprocessing                 # imports are allowed
from .some_module import module_print

def do_multiprocess():
    """Function defined in __main__ module - fine for use wrapping multiprocess"""
    with multiprocessing.Pool(processes=12) as pool:
        pool.map(module_print, range(20))  # multiprocessing external function is allowed

do_multiprocess()  # directly calling __main__ function is allowed

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

for 루프에서 다중 처리를 사용하는 방법-Python

분류에서Dev

클래스 내에서 Python에서 다중 처리를 사용하는 방법

분류에서Dev

Python에서 다중 처리를 구현하는 방법은 무엇입니까?

분류에서Dev

다음 중첩 루프에 대해 python3.x에서 다중 처리를 적용하는 방법

분류에서Dev

python3 소스 파일이 깨졌습니다 (다중 처리 중) ... python3 (.5.2)를 처음부터 다시 설치하는 방법

분류에서Dev

FastAPI에서 다중 처리를 수행하는 방법

분류에서Dev

Python 다중 처리-지도에서 효율적으로 분리하는 방법?

분류에서Dev

다중 처리에서 __main__ 변수 정의 외부 대 내부

분류에서Dev

루프 내에서 Python 다중 처리 Pool.map을 사용하는 방법

분류에서Dev

Windows에서 Python을 다중 처리하는 가장 좋은 방법

분류에서Dev

Python 다중 처리에서 특정 키워드 인수를 지정하는 방법

분류에서Dev

대용량 파일 Python에서 다중 처리를 수행하는 가장 좋은 방법

분류에서Dev

for 루프를 사용하여 python3에서 다른 전처리 기능을 사용하는 방법은 무엇입니까?

분류에서Dev

Ruby에서 Faker의 중복 키를 처리하는 방법

분류에서Dev

Android에서 중첩 된 JSON 개체를 처리하는 방법

분류에서Dev

Python에서 다중 스레딩 / 다중 처리하는 동안 중복 결과를 피하는 방법은 무엇입니까?

분류에서Dev

Django에서 다중 파일 입력 필드를 처리하는 방법

분류에서Dev

Swagger 2.0에서 다중 400 응답을 처리하는 방법

분류에서Dev

discord.py로 다중 처리하는 방법?

분류에서Dev

Python3에서 pyclbr을 사용하여 __main__ 모듈을 검색하는 방법은 무엇입니까?

분류에서Dev

다중 처리 함수에서 인수를 전달하는 방법과 다중 처리 목록을 사용하는 방법은 무엇입니까?

분류에서Dev

형식에서 다음 관계를 처리하는 방법

분류에서Dev

콘솔에서 다중 처리 라이브러리 (map_async 포함)를 사용하여 Python 스크립트를 시작하는 방법

분류에서Dev

TYPO3에서 큰 QueryResults를 처리하는 방법

분류에서Dev

Selenium : Chrome 및 Python에서 JNLP 문제를 처리하는 방법

분류에서Dev

python2에서 python3으로 람다를 마이그레이션하고 python3에서 제거 된 튜플 매개 변수 압축 해제를 처리하는 방법

분류에서Dev

슬라이딩 윈도우에 다중 처리를 적용하는 방법

분류에서Dev

스레딩 / 다중 처리를 구현하는 방법에 대해 혼동

분류에서Dev

Azure Service Bus에 대한 다중 액세스를 처리하는 방법

Related 관련 기사

  1. 1

    for 루프에서 다중 처리를 사용하는 방법-Python

  2. 2

    클래스 내에서 Python에서 다중 처리를 사용하는 방법

  3. 3

    Python에서 다중 처리를 구현하는 방법은 무엇입니까?

  4. 4

    다음 중첩 루프에 대해 python3.x에서 다중 처리를 적용하는 방법

  5. 5

    python3 소스 파일이 깨졌습니다 (다중 처리 중) ... python3 (.5.2)를 처음부터 다시 설치하는 방법

  6. 6

    FastAPI에서 다중 처리를 수행하는 방법

  7. 7

    Python 다중 처리-지도에서 효율적으로 분리하는 방법?

  8. 8

    다중 처리에서 __main__ 변수 정의 외부 대 내부

  9. 9

    루프 내에서 Python 다중 처리 Pool.map을 사용하는 방법

  10. 10

    Windows에서 Python을 다중 처리하는 가장 좋은 방법

  11. 11

    Python 다중 처리에서 특정 키워드 인수를 지정하는 방법

  12. 12

    대용량 파일 Python에서 다중 처리를 수행하는 가장 좋은 방법

  13. 13

    for 루프를 사용하여 python3에서 다른 전처리 기능을 사용하는 방법은 무엇입니까?

  14. 14

    Ruby에서 Faker의 중복 키를 처리하는 방법

  15. 15

    Android에서 중첩 된 JSON 개체를 처리하는 방법

  16. 16

    Python에서 다중 스레딩 / 다중 처리하는 동안 중복 결과를 피하는 방법은 무엇입니까?

  17. 17

    Django에서 다중 파일 입력 필드를 처리하는 방법

  18. 18

    Swagger 2.0에서 다중 400 응답을 처리하는 방법

  19. 19

    discord.py로 다중 처리하는 방법?

  20. 20

    Python3에서 pyclbr을 사용하여 __main__ 모듈을 검색하는 방법은 무엇입니까?

  21. 21

    다중 처리 함수에서 인수를 전달하는 방법과 다중 처리 목록을 사용하는 방법은 무엇입니까?

  22. 22

    형식에서 다음 관계를 처리하는 방법

  23. 23

    콘솔에서 다중 처리 라이브러리 (map_async 포함)를 사용하여 Python 스크립트를 시작하는 방법

  24. 24

    TYPO3에서 큰 QueryResults를 처리하는 방법

  25. 25

    Selenium : Chrome 및 Python에서 JNLP 문제를 처리하는 방법

  26. 26

    python2에서 python3으로 람다를 마이그레이션하고 python3에서 제거 된 튜플 매개 변수 압축 해제를 처리하는 방법

  27. 27

    슬라이딩 윈도우에 다중 처리를 적용하는 방법

  28. 28

    스레딩 / 다중 처리를 구현하는 방법에 대해 혼동

  29. 29

    Azure Service Bus에 대한 다중 액세스를 처리하는 방법

뜨겁다태그

보관