본문 바로가기
공부/프로그래밍

[Julia] 로컬 패키지 만드는 법

by AlderaminH 2024. 7. 9.

줄리아 파일을 include를 통해 상대주소로 접근하여 작성하다가 한계를 느껴서

로컬 패키징 하는 법을 알아보았다.

 

1. julia REPL에서 " ] " 눌러서 Pkg 모드로 진입.

2. (@v1.10) pkg> generate ./PkgName (PkgName은 사용자가 설정)

3. (@v1.10) pkg> dev ./PkgName (상대주소로 접근)

4. (@v1.10) pkg> activate ./PkgName (상대주소로 접근)

 

(@v1.10) -> (PkgName)으로 변경 되는걸 확인할 수 있다.

(PkgName) pkg> 

 

아나콘다로 따지면 conda activate PkgName 과 비슷한 상태.

 

(추가 패키지 등록)

4.1. (PkgName) pkg> add another_Pkg

4.2. (PkgName) pkg> dev ./local/dir/another_Pkg2

 

PkgName.jl 에 쓰이는 다른 기본 패키지가 있으면 이렇게 추가를 해둬야한다. 

예를 들어 PkgName에 LinearAlgebra 패키지를 쓰고있으면 다음과 같이 작성한다.

 

(PkgName) pkg> add LinearAlgebra 

 

만약, LinearAlgebra 같이 공식 패키지가 아니라

개인이 만든 local 주소에 있는 로컬 패키지는 dev를 이용해서 추가한다.

 

(PkgName) pkg> dev ./src/MyPkgName

 

5. (PkgName) pkg> instantiate

 

위와 같은 절차로 패키지 등록을 해두면

로컬 줄리아 스크립트에서

include("./where/your/julia/script/PkgName") 이 아니라 

바로 

using PkgName으로 접근 가능하다.

 

(필요하면)

(패키지 내의 모듈들을 최신으로 업데이트 할 때)
5.1 (PkgName) pkg> update
5.2 (PkgName) pkg> instantiate
5.3 (PkgName) pkg> precompile


(패지키의 의존성을 업데이트 할 때)
5.1 (PkgName) pkg> resolve
5.2 (PkgName) pkg> instantiate
5.3 (PkgName) pkg> precompile

 

가끔 로컬 패키지들 끼리 의존성을 설치하고 instantiate 까지 했는데도 오류가 뜰 때가 있었다.

 

그건 Manifest.toml 가 업데이트 안 되었기 때문이다. 이럴 때는 update 를 통해 Manifest.toml을 한번 갱신한 후 instantiate 해주어야 한다.

 

 

(만약, 내가 만든 패키지를 삭제하고 싶으면)

6. (@v1.10) pkg> rm PkgName

 

감사합니다.

댓글