공기 흐름에서 모듈 '__main__'의 'ClassName'속성을 가져올 수 없습니다.

Cyzanfar

Airflow사용하여 데이터 파이프 라인을 조정하고 있습니다. 작업 중 하나 RouteModel에서 S3에서 절인 객체 ( 인스턴스) 를로드하려고합니다 .

def read_file_from_s3(bucket, file):
    from inference.route_model import RouteModel

    s3_loader = S3Client(bucket, None)
    buffer = s3_loader.get_file(file)

    data = pickle.loads(buffer.read())

이 오류가 발생합니다.

Traceback (most recent call last):
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/env/lib/python3.6/site-packages/airflow/models/taskinstance.py", line 926, in _run_raw_task
    result = task_copy.execute(context=context)
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/env/lib/python3.6/site-packages/airflow/operators/python_operator.py", line 113, in execute
    return_value = self.execute_callable()
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/env/lib/python3.6/site-packages/airflow/operators/python_operator.py", line 118, in execute_callable
    return self.python_callable(*self.op_args, **self.op_kwargs)
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/inference/predict.py", line 43, in get_pred_for_flight
    pred_state, pred_state_prob, pred_dt = tst_pipeline.get_prediction(format_pred_od)
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/inference/pipeline.py", line 174, in get_prediction
    route_model = self.rm_loader.get_model(self.rm_dict[r_key]['rm_key'])
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/inference/dataloader.py", line 40, in get_model
    route_model = read_file_from_s3(self.loc, fname)
  File "/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/inference/dataloader.py", line 96, in read_file_from_s3
    data = pickle.loads(buffer.read())
AttributeError: Can't get attribute 'RouteModel' on <module '__main__' from '/Users/cyrusghazanfar/Desktop/startup-studio/pilota_project/pilota_ml/env/bin/airflow'>

커스텀 클래스로 작업 할 때 피클되는 클래스는 피클을 읽는 프로세스의 네임 스페이스에 나타나야합니다.이 경우에는 Airflow입니다.

노트:

파일 절임 방식을 변경할 수 없습니다.

도와주세요 :)

Cyzanfar

이 문제를 해결하려면 피클 파일이 참조하는 특정 인스턴스의 사용자 정의 클래스를 명시 적으로 반환하는 사용자 정의 언 피클 러를 작성해야했습니다.

class CustomUnpickler(pickle.Unpickler):

    def find_class(self, module, name):
        if name == 'RouteModel':
            from inference.route_model import RouteModel
            return RouteModel
        return super().find_class(module, name)

 data = CustomUnpickler(io.BytesIO(buffer.read())).load()

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python은 Azure Pipelines의 '.py'에서 '__main__'모듈을 찾을 수 없습니다.

분류에서Dev

openERP에서 사용자 정의 모듈을 가져올 수 없습니다.

분류에서Dev

Python 가상 환경, '__main__'모듈을 찾을 수 없습니다.

분류에서Dev

목록의 모듈을 가져올 수 없습니다.

분류에서Dev

TypeScript에서 모듈을 가져올 수 없습니다.

분류에서Dev

Python에서 Quandl 모듈을 가져올 수 없습니다.

분류에서Dev

Android Studio에서 OpenCV 모듈을 가져올 수 없습니다.

분류에서Dev

파이썬에서 모듈을 가져올 수 없습니다.

분류에서Dev

내 virtualenv 내에서 모듈을 가져올 수 없습니다.

분류에서Dev

파이썬에서 모듈을 가져올 수 없습니다

분류에서Dev

패키지에서 모듈을 가져올 수 없습니다.

분류에서Dev

'__main__'모듈을 찾을 수 없습니다.

분류에서Dev

virtualenv : '__main__'모듈을 찾을 수 없습니다.

분류에서Dev

어색한 배열의 다른 수준에서 공통 이름을 가진 모든 속성 가져 오기

분류에서Dev

Python-ATBS 부록 B-C : \\ 경로 오류에서 '__main__'모듈을 찾을 수 없습니다.

분류에서Dev

IE9 / 10에서 ReactJS 속성의 값을 가져올 수 없습니다.

분류에서Dev

Jest-공유 (Angular)에서 상대적 가져 오기가있는 모듈을 찾을 수 없습니다.

분류에서Dev

Liferay-7 GA5의 다른 모듈에서 서비스 래퍼 모듈을 가져올 수 없습니다.

분류에서Dev

Django 모델 가져 오기 오류 : 'driver.models'에서 'Driver'이름을 가져올 수 없습니다.

분류에서Dev

python3에서 pymysql 모듈을 가져올 수 없습니다.

분류에서Dev

Django 3에서 테스트 모듈을 가져올 수 없습니다.

분류에서Dev

Typescript의 가져 오기에서 외부 모듈을 확인할 수 없습니다.

분류에서Dev

보기에서 개체 속성을 가져올 수 없습니다.

분류에서Dev

shutil에서 가져올 때 copyfile을 모의 할 수 없습니다.

분류에서Dev

모듈을 내보냈음에도 정의되지 않은 속성 '크기'를 설정할 수 없습니다.

분류에서Dev

Python 계층 이미지 실패 : " 'lambda_function'모듈을 가져올 수 없음 : 'PIL'에서 '_imaging'이름을 가져올 수 없습니다."

분류에서Dev

Vuex 모듈의 import 및 module.exports에 Uncaught TypeError가 표시됨 : 개체의 'exports'속성을 읽기 전용으로 할당 할 수 없습니다.

분류에서Dev

오류없이 모듈을 가져올 수 없습니다

분류에서Dev

중포 기지에서 도시의 목록을 가져올 수 없습니다

Related 관련 기사

  1. 1

    Python은 Azure Pipelines의 '.py'에서 '__main__'모듈을 찾을 수 없습니다.

  2. 2

    openERP에서 사용자 정의 모듈을 가져올 수 없습니다.

  3. 3

    Python 가상 환경, '__main__'모듈을 찾을 수 없습니다.

  4. 4

    목록의 모듈을 가져올 수 없습니다.

  5. 5

    TypeScript에서 모듈을 가져올 수 없습니다.

  6. 6

    Python에서 Quandl 모듈을 가져올 수 없습니다.

  7. 7

    Android Studio에서 OpenCV 모듈을 가져올 수 없습니다.

  8. 8

    파이썬에서 모듈을 가져올 수 없습니다.

  9. 9

    내 virtualenv 내에서 모듈을 가져올 수 없습니다.

  10. 10

    파이썬에서 모듈을 가져올 수 없습니다

  11. 11

    패키지에서 모듈을 가져올 수 없습니다.

  12. 12

    '__main__'모듈을 찾을 수 없습니다.

  13. 13

    virtualenv : '__main__'모듈을 찾을 수 없습니다.

  14. 14

    어색한 배열의 다른 수준에서 공통 이름을 가진 모든 속성 가져 오기

  15. 15

    Python-ATBS 부록 B-C : \\ 경로 오류에서 '__main__'모듈을 찾을 수 없습니다.

  16. 16

    IE9 / 10에서 ReactJS 속성의 값을 가져올 수 없습니다.

  17. 17

    Jest-공유 (Angular)에서 상대적 가져 오기가있는 모듈을 찾을 수 없습니다.

  18. 18

    Liferay-7 GA5의 다른 모듈에서 서비스 래퍼 모듈을 가져올 수 없습니다.

  19. 19

    Django 모델 가져 오기 오류 : 'driver.models'에서 'Driver'이름을 가져올 수 없습니다.

  20. 20

    python3에서 pymysql 모듈을 가져올 수 없습니다.

  21. 21

    Django 3에서 테스트 모듈을 가져올 수 없습니다.

  22. 22

    Typescript의 가져 오기에서 외부 모듈을 확인할 수 없습니다.

  23. 23

    보기에서 개체 속성을 가져올 수 없습니다.

  24. 24

    shutil에서 가져올 때 copyfile을 모의 할 수 없습니다.

  25. 25

    모듈을 내보냈음에도 정의되지 않은 속성 '크기'를 설정할 수 없습니다.

  26. 26

    Python 계층 이미지 실패 : " 'lambda_function'모듈을 가져올 수 없음 : 'PIL'에서 '_imaging'이름을 가져올 수 없습니다."

  27. 27

    Vuex 모듈의 import 및 module.exports에 Uncaught TypeError가 표시됨 : 개체의 'exports'속성을 읽기 전용으로 할당 할 수 없습니다.

  28. 28

    오류없이 모듈을 가져올 수 없습니다

  29. 29

    중포 기지에서 도시의 목록을 가져올 수 없습니다

뜨겁다태그

보관