[Julia] CartesianGeneticProgramming package 윈도우 실행시 에러 Fix

CartesianGeneticProgramming 을 윈도우즈에서 실행하는 경우 예를 들어

C:\dev\CartesianGeneticProgramming\julia scripts\gym.jl 을 실행 하면 logs 폴더에 파일이 생성 되어야 하는데
이 때 파일명이 2020-11-26T01:33:25.321.csv 형태 인데 윈도우에서는 사용할 수 없는 파일명이기 때문에 생성되지 않고 에러가 생겨
더 이상 진행되지 않는다.

이 문제는 gym.jl 파일에 ind = CGPInd(cfg, read(args[“ind”], String)) 에서 cfg.id를 사용하여 파일을 생성하는데 위의 파일명 처럼 생성되어 문제를 일으킨다.

cfg는 gym.jl 파일 cfg = get_config(args[“cfg”]; n_in=n_in, n_out=n_out)에서 얻어 오는데

get_configs 는 config.jl에 정의 되어 있는데 이 function은 import Cambrian.get_config 에서 override 되는 것인데 CartesianGeneticProgramming 패키지에 피료한 패키지 이다.

Cambrian 패키지는 https://github.com/d9w/Cambrian.jl 에 다운 받을 수 있는데 이 패키지의 config.jl에 보면 cfg.id가 아래 처럼 설정되는 것을 볼 수 있다.

cfg[“id”] = string(Dates.now()) 이 부분에서 생성하는 문자열이 id로 사용되는데 2020-11-26T01:33:25.321 형태가 파일명으로 사용되기 때문에 문제가 된다.

이를 해결 하기 위해 cfg[“id”] = Dates.format(Dates.now(), “yyyymmddHHMMSSsss”) 로 버꾸었다. 이는 “20201126013325321” 형태로 사용되어 문제가 없다.

이 개선 사항에 대해서는 아래 url에서 변경사항과 반영여부를 체크 해 볼 수 있다.

GIT https://github.com/d9w/CartesianGeneticProgramming.jl

반영이 되지 않은 경우 기존 Cambrian 패키지를 삭제 하고 아래 url에서 Cambrian 패키지를 설치 하면된다.

https://github.com/mrchaos/Cambrian.jl.git

pkg> add https://github.com/mrchaos/Cambrian.jl.git

다시 C:\dev\CartesianGeneticProgramming\julia scripts\gym.jl 를 실행하면 logs 폴더에 파일이 생성된 것을 볼 수 있다.

또한 test도 성공적으로 수행되는 것을 볼 수 있다.

pkg> test CartesianGeneticProgramming

참고로 CartesianGeneticProgramming 를 설치하는데는 python gym 패키지가 설치되어야 하는데 설치가 쉽지 않은 경우 아래 글을 참조 하면됨

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다