2017-05-06 15 views
1

파이썬의 피클을 사용하는 동안 문제가 발생했습니다. 내가 지금처럼 importlib.util 자신의 파일 경로를 제공하여 일부 파이썬 모듈을로드해야합니다임포트 객체 importlib.util로 가져 오기

import importlib.util 
spec = importlib.util.spec_from_file_location('custom', 'C:\path\to\.py\file.py') 
module = importlib.util.module_from_spec(spec) 
spec.loader.exec_module(module) 

내가로드 된 모듈에서 일부 개체를 인스턴스화하고 나중에 사용하기 위해 그러한 직렬화는 좋아하지만 것입니다 내가하려고 할 때 : _pickle.PicklingError :

pickle.dump(module.ObjectFromModule(), open('C:\object\location\obj.p', 'wb')) 

나는이 얻을 피클 수 없습니다 : 나는 import 문을 통해 가져온 개체를 산 세척하려고하면 모듈 '정의'의 가져 오기가

실패, 이것은하지 않습니다 우연히 있다. 어떻게 이것을 무시할 수 있습니까?

답변

0

피클은 모듈 경로에 따라 다릅니다. 따라서 모듈 customsys.path에 있는지 확인해야합니다.

file_path = 'C:\path\to\.py\file.py' 
dir_name = os.path.dirname(file_path) 
if dir_name not in sys.path: 
    sys.path.append(dir_name) 
: 유사한 응용 프로그램에서

, 나는 그것이 같은 것을 수행하여 작업 할 수 있습니다