cython reload() 질문드립니다.

조회수 498회

안녕하세요,

코드의 빠른 실행을 위해 cython을 사용하고 있는데, cython으로 구현된 module을 다른 parameter로 재사용하기 위해 reload()를 하는데, 이것이 먹히지 않아요. 변경된 값이 아닌 이전 값으로 계속 실행이 되네요.

import importlib
import pyximport; pyximport.install(reload_support=True)
from cythonGo import cythonModule_A

modeltext = "123"
modeltext_2 = "456"

cythonModule_A.build(modeltext)
cythonModule_A.run(~~~)

importlib.reload(cythonModule_A)
cythonModule_A.build(modeltext_2)
cythonModule_A.run(~~~)

구글링을 하니 reload_support=True을 주고 reload()를 하면 된다고 하는데, 저는 이 방법이 먹히지 않아요(python 3.6). 좋은 방법 없을까요?!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 안녕하세요, 작성자입니다. 결국 방법을 찾지 못하여 물리적으로 reloading하는 방법을 취했습니다. batch script를 작성해서 for loop를 돌리면서 reload를 할까 했는데 아래와 같이 python 으로도 python file을 call할 수 있네요.

    import os
    for i in range(0,1000):
        path = "python R_signle.py {}".format(str(i))
        os.system(path)
    

    그래도 혹시 cython module을 python file 내에서 reload할 수 있는 방법을 알고 계신 있다면 제보 부탁드립니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)