Julia에 대한 기초 지식을 배우다가 갑자기 외부 라이브러리를 테스트해보고 싶어서 정리하는 글이다.
일단 사용환경은 Visual Studio Code이다. (Jupyter lab 또는 notebook이 아니라 jl 코드를 돌려야해서)
VS Code에서 Julia extension을 설치했다는 가정 하에 이야기한다.
1. 기초적으로 알아야 하는 내용
Python에서 인공지능을 해본 사람들이라면 알겠지만 환경이 중요하다. 어떤 라이브러리를 설치했고 어떤 파이썬 버전을 설치했냐에 따라 코드가 돌아갈 수도 있고 에러를 띄울 수도 있다.
마찬가지로 julia도 미리 환경을 신경써야 하는데 이를 위해 보통 Pkg 라이브러리를 사용한다.
처음 Julia를 열었을 때
] 키를 통해 package로 넘어갈 수 있다.
여기서
add [package name]
다음 코드를 통해 패키지를 설치할 수 있다.
package에 대한 자세한 내용은 Pkg document에서 접할 수 있다. 필자도 지금 읽는 중이다.
2. 본인이 환경을 만들고 싶은 경우
다음 문서를 참고하면 좋다.
본인이 직접 환경를 만들고 싶을 수 있는데 그 경우에는 package 모드에서 activate (package 이름)을 작성한다. 여기서는 MyProject로 지정한다. 그러면 MyProject 환경이 생기면서 Project.toml도 추가되는데 toml은 구성 파일 형식 이름이라고 한다. 이 안에 라이브러리와 그에 맞는 key가 생성된다. 이 파일을 가지고 있으면 나중에 배포할 때 다른 사람도 내가 어떤 패키지를 사용했는지 알 수 있고 그에 맞게 패키지를 설치할 수도 있다.
(@v1.8) pkg> activate MyProject
Activating new environment at `~/MyProject/Project.toml`
(MyProject) pkg> st
Status `~/MyProject/Project.toml` (empty project)
다만 라이브러리를 추가하기 전까지는 폴더가 생기지는 않는다.
아래 isdir을 보면 false인 것으로 아직 폴더가 생성되지 않음을 알 수 있다./
julia> isdir("MyProject")
false
(MyProject) pkg> add Example
Resolving package versions...
Installed Example ─ v0.5.3
Updating `~/MyProject/Project.toml`
[7876af07] + Example v0.5.3
Updating `~~/MyProject/Manifest.toml`
[7876af07] + Example v0.5.3
Precompiling environment...
1 dependency successfully precompiled in 2 seconds
julia> readdir("MyProject")
2-element Vector{String}:
"Manifest.toml"
"Project.toml"
julia> print(read(joinpath("MyProject", "Project.toml"), String))
[deps]
Example = "7876af07-990d-54b4-ab0e-23690620f79a"
julia> print(read(joinpath("MyProject", "Manifest.toml"), String))
# This file is machine-generated - editing it directly is not advised
julia_version = "1.8.2"
manifest_format = "2.0"
project_hash = "2ca1c6c58cb30e79e021fb54e5626c96d05d5fdc"
[[deps.Example]]
git-tree-sha1 = "46e44e869b4d90b96bd8ed1fdcf32244fddfb6cc"
uuid = "7876af07-990d-54b4-ab0e-23690620f79a"
version = "0.5.3"
다음을 통해 패키지 버전도 확인할 수 있다.
3. 다른 사람이 만든 환경을 사용하고 싶은 경우
shell> git clone https://github.com/JuliaLang/Example.jl.git
Cloning into 'Example.jl'...
...
(@v1.8) pkg> activate Example.jl
Activating project at `~/Example.jl`
(Example) pkg> instantiate
No Changes to `~/Example.jl/Project.toml`
No Changes to `~/Example.jl/Manifest.toml`
다음과 같이 다른 사람이 만든 환경을 쓰고 싶으면 git으로 받아서 activate를 하면 된다.
그런데 Example.jl 대신 그 폴더에 들어가서 toml이 있는 폴더에서 activate . 후에 instantiate를 하면 동일하게 적용된다.
참고자료
Pkg document : https://pkgdocs.julialang.org/v1/
https://youtu.be/QnctM0MUox8?si=8e-8yTf-LSHfhRAQ
'프로그래밍 Programming' 카테고리의 다른 글
[에러기록] XlaRuntimeError: UNIMPLEMENTED: Kernel launch needs more blocks (3199360032) than allowed by hardware (2147483647). (0) | 2024.05.14 |
---|---|
[Julia] 변수 Variables (0) | 2024.04.30 |
[Julia] Julia 프로그래밍 공부자료 (0) | 2024.02.06 |
[JAX] 버전에 따른 변화 (0) | 2023.11.22 |
[JAX] optax에서 learning rate 확인하는 방법 (0) | 2023.08.23 |